All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.alicloud.oss.inputs.BucketState Maven / Gradle / Ivy

There is a newer version: 3.63.0-alpha.1727424957
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.alicloud.oss.inputs;

import com.pulumi.alicloud.oss.inputs.BucketAccessMonitorArgs;
import com.pulumi.alicloud.oss.inputs.BucketCorsRuleArgs;
import com.pulumi.alicloud.oss.inputs.BucketLifecycleRuleArgs;
import com.pulumi.alicloud.oss.inputs.BucketLoggingArgs;
import com.pulumi.alicloud.oss.inputs.BucketRefererConfigArgs;
import com.pulumi.alicloud.oss.inputs.BucketServerSideEncryptionRuleArgs;
import com.pulumi.alicloud.oss.inputs.BucketTransferAccelerationArgs;
import com.pulumi.alicloud.oss.inputs.BucketVersioningArgs;
import com.pulumi.alicloud.oss.inputs.BucketWebsiteArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Boolean;
import java.lang.Object;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class BucketState extends com.pulumi.resources.ResourceArgs {

    public static final BucketState Empty = new BucketState();

    /**
     * A access monitor status of a bucket. See `access_monitor` below.
     * 
     */
    @Import(name="accessMonitor")
    private @Nullable Output accessMonitor;

    /**
     * @return A access monitor status of a bucket. See `access_monitor` below.
     * 
     */
    public Optional> accessMonitor() {
        return Optional.ofNullable(this.accessMonitor);
    }

    /**
     * The [canned ACL](https://www.alibabacloud.com/help/doc-detail/31898.htm) to apply. Can be "private", "public-read" and "public-read-write". This property has been deprecated since 1.220.0, please use the resource `alicloud.oss.BucketAcl` instead.
     * 
     * @deprecated
     * Field 'acl' has been deprecated since provider version 1.220.0. New resource 'alicloud_oss_bucket_acl' instead.
     * 
     */
    @Deprecated /* Field 'acl' has been deprecated since provider version 1.220.0. New resource 'alicloud_oss_bucket_acl' instead. */
    @Import(name="acl")
    private @Nullable Output acl;

    /**
     * @return The [canned ACL](https://www.alibabacloud.com/help/doc-detail/31898.htm) to apply. Can be "private", "public-read" and "public-read-write". This property has been deprecated since 1.220.0, please use the resource `alicloud.oss.BucketAcl` instead.
     * 
     * @deprecated
     * Field 'acl' has been deprecated since provider version 1.220.0. New resource 'alicloud_oss_bucket_acl' instead.
     * 
     */
    @Deprecated /* Field 'acl' has been deprecated since provider version 1.220.0. New resource 'alicloud_oss_bucket_acl' instead. */
    public Optional> acl() {
        return Optional.ofNullable(this.acl);
    }

    @Import(name="bucket")
    private @Nullable Output bucket;

    public Optional> bucket() {
        return Optional.ofNullable(this.bucket);
    }

    /**
     * A rule of  [Cross-Origin Resource Sharing](https://www.alibabacloud.com/help/doc-detail/31903.htm). The items of core rule are no more than 10 for every OSS bucket. See `cors_rule` below.
     * 
     */
    @Import(name="corsRules")
    private @Nullable Output> corsRules;

    /**
     * @return A rule of  [Cross-Origin Resource Sharing](https://www.alibabacloud.com/help/doc-detail/31903.htm). The items of core rule are no more than 10 for every OSS bucket. See `cors_rule` below.
     * 
     */
    public Optional>> corsRules() {
        return Optional.ofNullable(this.corsRules);
    }

    /**
     * The creation date of the bucket.
     * 
     */
    @Import(name="creationDate")
    private @Nullable Output creationDate;

    /**
     * @return The creation date of the bucket.
     * 
     */
    public Optional> creationDate() {
        return Optional.ofNullable(this.creationDate);
    }

    /**
     * The extranet access endpoint of the bucket.
     * 
     */
    @Import(name="extranetEndpoint")
    private @Nullable Output extranetEndpoint;

    /**
     * @return The extranet access endpoint of the bucket.
     * 
     */
    public Optional> extranetEndpoint() {
        return Optional.ofNullable(this.extranetEndpoint);
    }

    /**
     * A boolean that indicates all objects should be deleted from the bucket so that the bucket can be destroyed without error. These objects are not recoverable. Defaults to "false".
     * 
     */
    @Import(name="forceDestroy")
    private @Nullable Output forceDestroy;

    /**
     * @return A boolean that indicates all objects should be deleted from the bucket so that the bucket can be destroyed without error. These objects are not recoverable. Defaults to "false".
     * 
     */
    public Optional> forceDestroy() {
        return Optional.ofNullable(this.forceDestroy);
    }

    /**
     * The intranet access endpoint of the bucket.
     * 
     */
    @Import(name="intranetEndpoint")
    private @Nullable Output intranetEndpoint;

    /**
     * @return The intranet access endpoint of the bucket.
     * 
     */
    public Optional> intranetEndpoint() {
        return Optional.ofNullable(this.intranetEndpoint);
    }

    /**
     * A boolean that indicates lifecycle rules allow prefix overlap.
     * 
     */
    @Import(name="lifecycleRuleAllowSameActionOverlap")
    private @Nullable Output lifecycleRuleAllowSameActionOverlap;

    /**
     * @return A boolean that indicates lifecycle rules allow prefix overlap.
     * 
     */
    public Optional> lifecycleRuleAllowSameActionOverlap() {
        return Optional.ofNullable(this.lifecycleRuleAllowSameActionOverlap);
    }

    /**
     * A configuration of [object lifecycle management](https://www.alibabacloud.com/help/doc-detail/31904.htm). See `lifecycle_rule` below.
     * 
     */
    @Import(name="lifecycleRules")
    private @Nullable Output> lifecycleRules;

    /**
     * @return A configuration of [object lifecycle management](https://www.alibabacloud.com/help/doc-detail/31904.htm). See `lifecycle_rule` below.
     * 
     */
    public Optional>> lifecycleRules() {
        return Optional.ofNullable(this.lifecycleRules);
    }

    /**
     * The location of the bucket.
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return The location of the bucket.
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * A Settings of [bucket logging](https://www.alibabacloud.com/help/doc-detail/31900.htm). See `logging` below.
     * 
     */
    @Import(name="logging")
    private @Nullable Output logging;

    /**
     * @return A Settings of [bucket logging](https://www.alibabacloud.com/help/doc-detail/31900.htm). See `logging` below.
     * 
     */
    public Optional> logging() {
        return Optional.ofNullable(this.logging);
    }

    /**
     * The flag of using logging enable container. Defaults true.
     * 
     * @deprecated
     * Deprecated from 1.37.0. When `logging` is set, the bucket logging will be able.
     * 
     */
    @Deprecated /* Deprecated from 1.37.0. When `logging` is set, the bucket logging will be able. */
    @Import(name="loggingIsenable")
    private @Nullable Output loggingIsenable;

    /**
     * @return The flag of using logging enable container. Defaults true.
     * 
     * @deprecated
     * Deprecated from 1.37.0. When `logging` is set, the bucket logging will be able.
     * 
     */
    @Deprecated /* Deprecated from 1.37.0. When `logging` is set, the bucket logging will be able. */
    public Optional> loggingIsenable() {
        return Optional.ofNullable(this.loggingIsenable);
    }

    /**
     * The bucket owner.
     * 
     */
    @Import(name="owner")
    private @Nullable Output owner;

    /**
     * @return The bucket owner.
     * 
     */
    public Optional> owner() {
        return Optional.ofNullable(this.owner);
    }

    /**
     * Json format text of bucket policy [bucket policy management](https://www.alibabacloud.com/help/doc-detail/100680.htm). This property has been deprecated since 1.220.0, please use the resource `alicloud.oss.BucketPolicy` instead.
     * 
     */
    @Import(name="policy")
    private @Nullable Output policy;

    /**
     * @return Json format text of bucket policy [bucket policy management](https://www.alibabacloud.com/help/doc-detail/100680.htm). This property has been deprecated since 1.220.0, please use the resource `alicloud.oss.BucketPolicy` instead.
     * 
     */
    public Optional> policy() {
        return Optional.ofNullable(this.policy);
    }

    /**
     * The [redundancy type](https://www.alibabacloud.com/help/doc-detail/90589.htm) to enable. Can be "LRS", and "ZRS". Defaults to "LRS".
     * 
     */
    @Import(name="redundancyType")
    private @Nullable Output redundancyType;

    /**
     * @return The [redundancy type](https://www.alibabacloud.com/help/doc-detail/90589.htm) to enable. Can be "LRS", and "ZRS". Defaults to "LRS".
     * 
     */
    public Optional> redundancyType() {
        return Optional.ofNullable(this.redundancyType);
    }

    /**
     * The configuration of [referer](https://www.alibabacloud.com/help/doc-detail/31901.htm). This property has been deprecated since 1.220.0, please use the resource `alicloud.oss.BucketReferer` instead. See `referer_config` below.
     * 
     */
    @Import(name="refererConfig")
    private @Nullable Output refererConfig;

    /**
     * @return The configuration of [referer](https://www.alibabacloud.com/help/doc-detail/31901.htm). This property has been deprecated since 1.220.0, please use the resource `alicloud.oss.BucketReferer` instead. See `referer_config` below.
     * 
     */
    public Optional> refererConfig() {
        return Optional.ofNullable(this.refererConfig);
    }

    /**
     * The ID of the resource group to which the bucket belongs.
     * 
     */
    @Import(name="resourceGroupId")
    private @Nullable Output resourceGroupId;

    /**
     * @return The ID of the resource group to which the bucket belongs.
     * 
     */
    public Optional> resourceGroupId() {
        return Optional.ofNullable(this.resourceGroupId);
    }

    /**
     * A configuration of server-side encryption. See `server_side_encryption_rule` below.
     * 
     */
    @Import(name="serverSideEncryptionRule")
    private @Nullable Output serverSideEncryptionRule;

    /**
     * @return A configuration of server-side encryption. See `server_side_encryption_rule` below.
     * 
     */
    public Optional> serverSideEncryptionRule() {
        return Optional.ofNullable(this.serverSideEncryptionRule);
    }

    /**
     * The [storage class](https://www.alibabacloud.com/help/doc-detail/51374.htm) to apply. Can be "Standard", "IA", "Archive", "ColdArchive" and "DeepColdArchive". Defaults to "Standard". "ColdArchive" is available since 1.203.0. "DeepColdArchive" is available since 1.209.0.
     * 
     */
    @Import(name="storageClass")
    private @Nullable Output storageClass;

    /**
     * @return The [storage class](https://www.alibabacloud.com/help/doc-detail/51374.htm) to apply. Can be "Standard", "IA", "Archive", "ColdArchive" and "DeepColdArchive". Defaults to "Standard". "ColdArchive" is available since 1.203.0. "DeepColdArchive" is available since 1.209.0.
     * 
     */
    public Optional> storageClass() {
        return Optional.ofNullable(this.storageClass);
    }

    /**
     * A mapping of tags to assign to the bucket. The items are no more than 10 for a bucket.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return A mapping of tags to assign to the bucket. The items are no more than 10 for a bucket.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * A transfer acceleration status of a bucket. See `transfer_acceleration` below.
     * 
     */
    @Import(name="transferAcceleration")
    private @Nullable Output transferAcceleration;

    /**
     * @return A transfer acceleration status of a bucket. See `transfer_acceleration` below.
     * 
     */
    public Optional> transferAcceleration() {
        return Optional.ofNullable(this.transferAcceleration);
    }

    /**
     * A state of versioning. See `versioning` below.
     * 
     */
    @Import(name="versioning")
    private @Nullable Output versioning;

    /**
     * @return A state of versioning. See `versioning` below.
     * 
     */
    public Optional> versioning() {
        return Optional.ofNullable(this.versioning);
    }

    /**
     * A website configuration. See `website` below.
     * 
     */
    @Import(name="website")
    private @Nullable Output website;

    /**
     * @return A website configuration. See `website` below.
     * 
     */
    public Optional> website() {
        return Optional.ofNullable(this.website);
    }

    private BucketState() {}

    private BucketState(BucketState $) {
        this.accessMonitor = $.accessMonitor;
        this.acl = $.acl;
        this.bucket = $.bucket;
        this.corsRules = $.corsRules;
        this.creationDate = $.creationDate;
        this.extranetEndpoint = $.extranetEndpoint;
        this.forceDestroy = $.forceDestroy;
        this.intranetEndpoint = $.intranetEndpoint;
        this.lifecycleRuleAllowSameActionOverlap = $.lifecycleRuleAllowSameActionOverlap;
        this.lifecycleRules = $.lifecycleRules;
        this.location = $.location;
        this.logging = $.logging;
        this.loggingIsenable = $.loggingIsenable;
        this.owner = $.owner;
        this.policy = $.policy;
        this.redundancyType = $.redundancyType;
        this.refererConfig = $.refererConfig;
        this.resourceGroupId = $.resourceGroupId;
        this.serverSideEncryptionRule = $.serverSideEncryptionRule;
        this.storageClass = $.storageClass;
        this.tags = $.tags;
        this.transferAcceleration = $.transferAcceleration;
        this.versioning = $.versioning;
        this.website = $.website;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(BucketState defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private BucketState $;

        public Builder() {
            $ = new BucketState();
        }

        public Builder(BucketState defaults) {
            $ = new BucketState(Objects.requireNonNull(defaults));
        }

        /**
         * @param accessMonitor A access monitor status of a bucket. See `access_monitor` below.
         * 
         * @return builder
         * 
         */
        public Builder accessMonitor(@Nullable Output accessMonitor) {
            $.accessMonitor = accessMonitor;
            return this;
        }

        /**
         * @param accessMonitor A access monitor status of a bucket. See `access_monitor` below.
         * 
         * @return builder
         * 
         */
        public Builder accessMonitor(BucketAccessMonitorArgs accessMonitor) {
            return accessMonitor(Output.of(accessMonitor));
        }

        /**
         * @param acl The [canned ACL](https://www.alibabacloud.com/help/doc-detail/31898.htm) to apply. Can be "private", "public-read" and "public-read-write". This property has been deprecated since 1.220.0, please use the resource `alicloud.oss.BucketAcl` instead.
         * 
         * @return builder
         * 
         * @deprecated
         * Field 'acl' has been deprecated since provider version 1.220.0. New resource 'alicloud_oss_bucket_acl' instead.
         * 
         */
        @Deprecated /* Field 'acl' has been deprecated since provider version 1.220.0. New resource 'alicloud_oss_bucket_acl' instead. */
        public Builder acl(@Nullable Output acl) {
            $.acl = acl;
            return this;
        }

        /**
         * @param acl The [canned ACL](https://www.alibabacloud.com/help/doc-detail/31898.htm) to apply. Can be "private", "public-read" and "public-read-write". This property has been deprecated since 1.220.0, please use the resource `alicloud.oss.BucketAcl` instead.
         * 
         * @return builder
         * 
         * @deprecated
         * Field 'acl' has been deprecated since provider version 1.220.0. New resource 'alicloud_oss_bucket_acl' instead.
         * 
         */
        @Deprecated /* Field 'acl' has been deprecated since provider version 1.220.0. New resource 'alicloud_oss_bucket_acl' instead. */
        public Builder acl(String acl) {
            return acl(Output.of(acl));
        }

        public Builder bucket(@Nullable Output bucket) {
            $.bucket = bucket;
            return this;
        }

        public Builder bucket(String bucket) {
            return bucket(Output.of(bucket));
        }

        /**
         * @param corsRules A rule of  [Cross-Origin Resource Sharing](https://www.alibabacloud.com/help/doc-detail/31903.htm). The items of core rule are no more than 10 for every OSS bucket. See `cors_rule` below.
         * 
         * @return builder
         * 
         */
        public Builder corsRules(@Nullable Output> corsRules) {
            $.corsRules = corsRules;
            return this;
        }

        /**
         * @param corsRules A rule of  [Cross-Origin Resource Sharing](https://www.alibabacloud.com/help/doc-detail/31903.htm). The items of core rule are no more than 10 for every OSS bucket. See `cors_rule` below.
         * 
         * @return builder
         * 
         */
        public Builder corsRules(List corsRules) {
            return corsRules(Output.of(corsRules));
        }

        /**
         * @param corsRules A rule of  [Cross-Origin Resource Sharing](https://www.alibabacloud.com/help/doc-detail/31903.htm). The items of core rule are no more than 10 for every OSS bucket. See `cors_rule` below.
         * 
         * @return builder
         * 
         */
        public Builder corsRules(BucketCorsRuleArgs... corsRules) {
            return corsRules(List.of(corsRules));
        }

        /**
         * @param creationDate The creation date of the bucket.
         * 
         * @return builder
         * 
         */
        public Builder creationDate(@Nullable Output creationDate) {
            $.creationDate = creationDate;
            return this;
        }

        /**
         * @param creationDate The creation date of the bucket.
         * 
         * @return builder
         * 
         */
        public Builder creationDate(String creationDate) {
            return creationDate(Output.of(creationDate));
        }

        /**
         * @param extranetEndpoint The extranet access endpoint of the bucket.
         * 
         * @return builder
         * 
         */
        public Builder extranetEndpoint(@Nullable Output extranetEndpoint) {
            $.extranetEndpoint = extranetEndpoint;
            return this;
        }

        /**
         * @param extranetEndpoint The extranet access endpoint of the bucket.
         * 
         * @return builder
         * 
         */
        public Builder extranetEndpoint(String extranetEndpoint) {
            return extranetEndpoint(Output.of(extranetEndpoint));
        }

        /**
         * @param forceDestroy A boolean that indicates all objects should be deleted from the bucket so that the bucket can be destroyed without error. These objects are not recoverable. Defaults to "false".
         * 
         * @return builder
         * 
         */
        public Builder forceDestroy(@Nullable Output forceDestroy) {
            $.forceDestroy = forceDestroy;
            return this;
        }

        /**
         * @param forceDestroy A boolean that indicates all objects should be deleted from the bucket so that the bucket can be destroyed without error. These objects are not recoverable. Defaults to "false".
         * 
         * @return builder
         * 
         */
        public Builder forceDestroy(Boolean forceDestroy) {
            return forceDestroy(Output.of(forceDestroy));
        }

        /**
         * @param intranetEndpoint The intranet access endpoint of the bucket.
         * 
         * @return builder
         * 
         */
        public Builder intranetEndpoint(@Nullable Output intranetEndpoint) {
            $.intranetEndpoint = intranetEndpoint;
            return this;
        }

        /**
         * @param intranetEndpoint The intranet access endpoint of the bucket.
         * 
         * @return builder
         * 
         */
        public Builder intranetEndpoint(String intranetEndpoint) {
            return intranetEndpoint(Output.of(intranetEndpoint));
        }

        /**
         * @param lifecycleRuleAllowSameActionOverlap A boolean that indicates lifecycle rules allow prefix overlap.
         * 
         * @return builder
         * 
         */
        public Builder lifecycleRuleAllowSameActionOverlap(@Nullable Output lifecycleRuleAllowSameActionOverlap) {
            $.lifecycleRuleAllowSameActionOverlap = lifecycleRuleAllowSameActionOverlap;
            return this;
        }

        /**
         * @param lifecycleRuleAllowSameActionOverlap A boolean that indicates lifecycle rules allow prefix overlap.
         * 
         * @return builder
         * 
         */
        public Builder lifecycleRuleAllowSameActionOverlap(Boolean lifecycleRuleAllowSameActionOverlap) {
            return lifecycleRuleAllowSameActionOverlap(Output.of(lifecycleRuleAllowSameActionOverlap));
        }

        /**
         * @param lifecycleRules A configuration of [object lifecycle management](https://www.alibabacloud.com/help/doc-detail/31904.htm). See `lifecycle_rule` below.
         * 
         * @return builder
         * 
         */
        public Builder lifecycleRules(@Nullable Output> lifecycleRules) {
            $.lifecycleRules = lifecycleRules;
            return this;
        }

        /**
         * @param lifecycleRules A configuration of [object lifecycle management](https://www.alibabacloud.com/help/doc-detail/31904.htm). See `lifecycle_rule` below.
         * 
         * @return builder
         * 
         */
        public Builder lifecycleRules(List lifecycleRules) {
            return lifecycleRules(Output.of(lifecycleRules));
        }

        /**
         * @param lifecycleRules A configuration of [object lifecycle management](https://www.alibabacloud.com/help/doc-detail/31904.htm). See `lifecycle_rule` below.
         * 
         * @return builder
         * 
         */
        public Builder lifecycleRules(BucketLifecycleRuleArgs... lifecycleRules) {
            return lifecycleRules(List.of(lifecycleRules));
        }

        /**
         * @param location The location of the bucket.
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location The location of the bucket.
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param logging A Settings of [bucket logging](https://www.alibabacloud.com/help/doc-detail/31900.htm). See `logging` below.
         * 
         * @return builder
         * 
         */
        public Builder logging(@Nullable Output logging) {
            $.logging = logging;
            return this;
        }

        /**
         * @param logging A Settings of [bucket logging](https://www.alibabacloud.com/help/doc-detail/31900.htm). See `logging` below.
         * 
         * @return builder
         * 
         */
        public Builder logging(BucketLoggingArgs logging) {
            return logging(Output.of(logging));
        }

        /**
         * @param loggingIsenable The flag of using logging enable container. Defaults true.
         * 
         * @return builder
         * 
         * @deprecated
         * Deprecated from 1.37.0. When `logging` is set, the bucket logging will be able.
         * 
         */
        @Deprecated /* Deprecated from 1.37.0. When `logging` is set, the bucket logging will be able. */
        public Builder loggingIsenable(@Nullable Output loggingIsenable) {
            $.loggingIsenable = loggingIsenable;
            return this;
        }

        /**
         * @param loggingIsenable The flag of using logging enable container. Defaults true.
         * 
         * @return builder
         * 
         * @deprecated
         * Deprecated from 1.37.0. When `logging` is set, the bucket logging will be able.
         * 
         */
        @Deprecated /* Deprecated from 1.37.0. When `logging` is set, the bucket logging will be able. */
        public Builder loggingIsenable(Boolean loggingIsenable) {
            return loggingIsenable(Output.of(loggingIsenable));
        }

        /**
         * @param owner The bucket owner.
         * 
         * @return builder
         * 
         */
        public Builder owner(@Nullable Output owner) {
            $.owner = owner;
            return this;
        }

        /**
         * @param owner The bucket owner.
         * 
         * @return builder
         * 
         */
        public Builder owner(String owner) {
            return owner(Output.of(owner));
        }

        /**
         * @param policy Json format text of bucket policy [bucket policy management](https://www.alibabacloud.com/help/doc-detail/100680.htm). This property has been deprecated since 1.220.0, please use the resource `alicloud.oss.BucketPolicy` instead.
         * 
         * @return builder
         * 
         */
        public Builder policy(@Nullable Output policy) {
            $.policy = policy;
            return this;
        }

        /**
         * @param policy Json format text of bucket policy [bucket policy management](https://www.alibabacloud.com/help/doc-detail/100680.htm). This property has been deprecated since 1.220.0, please use the resource `alicloud.oss.BucketPolicy` instead.
         * 
         * @return builder
         * 
         */
        public Builder policy(String policy) {
            return policy(Output.of(policy));
        }

        /**
         * @param redundancyType The [redundancy type](https://www.alibabacloud.com/help/doc-detail/90589.htm) to enable. Can be "LRS", and "ZRS". Defaults to "LRS".
         * 
         * @return builder
         * 
         */
        public Builder redundancyType(@Nullable Output redundancyType) {
            $.redundancyType = redundancyType;
            return this;
        }

        /**
         * @param redundancyType The [redundancy type](https://www.alibabacloud.com/help/doc-detail/90589.htm) to enable. Can be "LRS", and "ZRS". Defaults to "LRS".
         * 
         * @return builder
         * 
         */
        public Builder redundancyType(String redundancyType) {
            return redundancyType(Output.of(redundancyType));
        }

        /**
         * @param refererConfig The configuration of [referer](https://www.alibabacloud.com/help/doc-detail/31901.htm). This property has been deprecated since 1.220.0, please use the resource `alicloud.oss.BucketReferer` instead. See `referer_config` below.
         * 
         * @return builder
         * 
         */
        public Builder refererConfig(@Nullable Output refererConfig) {
            $.refererConfig = refererConfig;
            return this;
        }

        /**
         * @param refererConfig The configuration of [referer](https://www.alibabacloud.com/help/doc-detail/31901.htm). This property has been deprecated since 1.220.0, please use the resource `alicloud.oss.BucketReferer` instead. See `referer_config` below.
         * 
         * @return builder
         * 
         */
        public Builder refererConfig(BucketRefererConfigArgs refererConfig) {
            return refererConfig(Output.of(refererConfig));
        }

        /**
         * @param resourceGroupId The ID of the resource group to which the bucket belongs.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupId(@Nullable Output resourceGroupId) {
            $.resourceGroupId = resourceGroupId;
            return this;
        }

        /**
         * @param resourceGroupId The ID of the resource group to which the bucket belongs.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupId(String resourceGroupId) {
            return resourceGroupId(Output.of(resourceGroupId));
        }

        /**
         * @param serverSideEncryptionRule A configuration of server-side encryption. See `server_side_encryption_rule` below.
         * 
         * @return builder
         * 
         */
        public Builder serverSideEncryptionRule(@Nullable Output serverSideEncryptionRule) {
            $.serverSideEncryptionRule = serverSideEncryptionRule;
            return this;
        }

        /**
         * @param serverSideEncryptionRule A configuration of server-side encryption. See `server_side_encryption_rule` below.
         * 
         * @return builder
         * 
         */
        public Builder serverSideEncryptionRule(BucketServerSideEncryptionRuleArgs serverSideEncryptionRule) {
            return serverSideEncryptionRule(Output.of(serverSideEncryptionRule));
        }

        /**
         * @param storageClass The [storage class](https://www.alibabacloud.com/help/doc-detail/51374.htm) to apply. Can be "Standard", "IA", "Archive", "ColdArchive" and "DeepColdArchive". Defaults to "Standard". "ColdArchive" is available since 1.203.0. "DeepColdArchive" is available since 1.209.0.
         * 
         * @return builder
         * 
         */
        public Builder storageClass(@Nullable Output storageClass) {
            $.storageClass = storageClass;
            return this;
        }

        /**
         * @param storageClass The [storage class](https://www.alibabacloud.com/help/doc-detail/51374.htm) to apply. Can be "Standard", "IA", "Archive", "ColdArchive" and "DeepColdArchive". Defaults to "Standard". "ColdArchive" is available since 1.203.0. "DeepColdArchive" is available since 1.209.0.
         * 
         * @return builder
         * 
         */
        public Builder storageClass(String storageClass) {
            return storageClass(Output.of(storageClass));
        }

        /**
         * @param tags A mapping of tags to assign to the bucket. The items are no more than 10 for a bucket.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags A mapping of tags to assign to the bucket. The items are no more than 10 for a bucket.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param transferAcceleration A transfer acceleration status of a bucket. See `transfer_acceleration` below.
         * 
         * @return builder
         * 
         */
        public Builder transferAcceleration(@Nullable Output transferAcceleration) {
            $.transferAcceleration = transferAcceleration;
            return this;
        }

        /**
         * @param transferAcceleration A transfer acceleration status of a bucket. See `transfer_acceleration` below.
         * 
         * @return builder
         * 
         */
        public Builder transferAcceleration(BucketTransferAccelerationArgs transferAcceleration) {
            return transferAcceleration(Output.of(transferAcceleration));
        }

        /**
         * @param versioning A state of versioning. See `versioning` below.
         * 
         * @return builder
         * 
         */
        public Builder versioning(@Nullable Output versioning) {
            $.versioning = versioning;
            return this;
        }

        /**
         * @param versioning A state of versioning. See `versioning` below.
         * 
         * @return builder
         * 
         */
        public Builder versioning(BucketVersioningArgs versioning) {
            return versioning(Output.of(versioning));
        }

        /**
         * @param website A website configuration. See `website` below.
         * 
         * @return builder
         * 
         */
        public Builder website(@Nullable Output website) {
            $.website = website;
            return this;
        }

        /**
         * @param website A website configuration. See `website` below.
         * 
         * @return builder
         * 
         */
        public Builder website(BucketWebsiteArgs website) {
            return website(Output.of(website));
        }

        public BucketState build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy