// *** 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.aws.s3control.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Boolean;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final MultiRegionAccessPointDetailsPublicAccessBlockArgs Empty = new MultiRegionAccessPointDetailsPublicAccessBlockArgs();

    @Import(name="blockPublicAcls")
    private @Nullable Output<Boolean> blockPublicAcls;

    public Optional<Output<Boolean>> blockPublicAcls() {
        return Optional.ofNullable(this.blockPublicAcls);
    }

    @Import(name="blockPublicPolicy")
    private @Nullable Output<Boolean> blockPublicPolicy;

    public Optional<Output<Boolean>> blockPublicPolicy() {
        return Optional.ofNullable(this.blockPublicPolicy);
    }

    @Import(name="ignorePublicAcls")
    private @Nullable Output<Boolean> ignorePublicAcls;

    public Optional<Output<Boolean>> ignorePublicAcls() {
        return Optional.ofNullable(this.ignorePublicAcls);
    }

    @Import(name="restrictPublicBuckets")
    private @Nullable Output<Boolean> restrictPublicBuckets;

    public Optional<Output<Boolean>> restrictPublicBuckets() {
        return Optional.ofNullable(this.restrictPublicBuckets);
    }

    private MultiRegionAccessPointDetailsPublicAccessBlockArgs() {}

    private MultiRegionAccessPointDetailsPublicAccessBlockArgs(MultiRegionAccessPointDetailsPublicAccessBlockArgs $) {
        this.blockPublicAcls = $.blockPublicAcls;
        this.blockPublicPolicy = $.blockPublicPolicy;
        this.ignorePublicAcls = $.ignorePublicAcls;
        this.restrictPublicBuckets = $.restrictPublicBuckets;
    }

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

    public static final class Builder {
        private MultiRegionAccessPointDetailsPublicAccessBlockArgs $;

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

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

        public Builder blockPublicAcls(@Nullable Output<Boolean> blockPublicAcls) {
            $.blockPublicAcls = blockPublicAcls;
            return this;
        }

        public Builder blockPublicAcls(Boolean blockPublicAcls) {
            return blockPublicAcls(Output.of(blockPublicAcls));
        }

        public Builder blockPublicPolicy(@Nullable Output<Boolean> blockPublicPolicy) {
            $.blockPublicPolicy = blockPublicPolicy;
            return this;
        }

        public Builder blockPublicPolicy(Boolean blockPublicPolicy) {
            return blockPublicPolicy(Output.of(blockPublicPolicy));
        }

        public Builder ignorePublicAcls(@Nullable Output<Boolean> ignorePublicAcls) {
            $.ignorePublicAcls = ignorePublicAcls;
            return this;
        }

        public Builder ignorePublicAcls(Boolean ignorePublicAcls) {
            return ignorePublicAcls(Output.of(ignorePublicAcls));
        }

        public Builder restrictPublicBuckets(@Nullable Output<Boolean> restrictPublicBuckets) {
            $.restrictPublicBuckets = restrictPublicBuckets;
            return this;
        }

        public Builder restrictPublicBuckets(Boolean restrictPublicBuckets) {
            return restrictPublicBuckets(Output.of(restrictPublicBuckets));
        }

        public MultiRegionAccessPointDetailsPublicAccessBlockArgs build() {
            return $;
        }
    }

}
