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

com.pulumi.aws.fsx.inputs.OpenZfsFileSystemRootVolumeConfigurationArgs Maven / Gradle / Ivy

Go to download

A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.

There is a newer version: 6.66.3
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.aws.fsx.inputs;

import com.pulumi.aws.fsx.inputs.OpenZfsFileSystemRootVolumeConfigurationNfsExportsArgs;
import com.pulumi.aws.fsx.inputs.OpenZfsFileSystemRootVolumeConfigurationUserAndGroupQuotaArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final OpenZfsFileSystemRootVolumeConfigurationArgs Empty = new OpenZfsFileSystemRootVolumeConfigurationArgs();

    /**
     * A boolean flag indicating whether tags for the file system should be copied to snapshots. The default value is false.
     * 
     */
    @Import(name="copyTagsToSnapshots")
    private @Nullable Output copyTagsToSnapshots;

    /**
     * @return A boolean flag indicating whether tags for the file system should be copied to snapshots. The default value is false.
     * 
     */
    public Optional> copyTagsToSnapshots() {
        return Optional.ofNullable(this.copyTagsToSnapshots);
    }

    /**
     * Method used to compress the data on the volume. Valid values are `LZ4`, `NONE` or `ZSTD`. Child volumes that don't specify compression option will inherit from parent volume. This option on file system applies to the root volume.
     * 
     */
    @Import(name="dataCompressionType")
    private @Nullable Output dataCompressionType;

    /**
     * @return Method used to compress the data on the volume. Valid values are `LZ4`, `NONE` or `ZSTD`. Child volumes that don't specify compression option will inherit from parent volume. This option on file system applies to the root volume.
     * 
     */
    public Optional> dataCompressionType() {
        return Optional.ofNullable(this.dataCompressionType);
    }

    /**
     * NFS export configuration for the root volume. Exactly 1 item. See `nfs_exports` Block for details.
     * 
     */
    @Import(name="nfsExports")
    private @Nullable Output nfsExports;

    /**
     * @return NFS export configuration for the root volume. Exactly 1 item. See `nfs_exports` Block for details.
     * 
     */
    public Optional> nfsExports() {
        return Optional.ofNullable(this.nfsExports);
    }

    /**
     * specifies whether the volume is read-only. Default is false.
     * 
     */
    @Import(name="readOnly")
    private @Nullable Output readOnly;

    /**
     * @return specifies whether the volume is read-only. Default is false.
     * 
     */
    public Optional> readOnly() {
        return Optional.ofNullable(this.readOnly);
    }

    /**
     * Specifies the record size of an OpenZFS root volume, in kibibytes (KiB). Valid values are `4`, `8`, `16`, `32`, `64`, `128`, `256`, `512`, or `1024` KiB. The default is `128` KiB.
     * 
     */
    @Import(name="recordSizeKib")
    private @Nullable Output recordSizeKib;

    /**
     * @return Specifies the record size of an OpenZFS root volume, in kibibytes (KiB). Valid values are `4`, `8`, `16`, `32`, `64`, `128`, `256`, `512`, or `1024` KiB. The default is `128` KiB.
     * 
     */
    public Optional> recordSizeKib() {
        return Optional.ofNullable(this.recordSizeKib);
    }

    /**
     * Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `user_and_group_quotas` Block for details.
     * 
     */
    @Import(name="userAndGroupQuotas")
    private @Nullable Output> userAndGroupQuotas;

    /**
     * @return Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `user_and_group_quotas` Block for details.
     * 
     */
    public Optional>> userAndGroupQuotas() {
        return Optional.ofNullable(this.userAndGroupQuotas);
    }

    private OpenZfsFileSystemRootVolumeConfigurationArgs() {}

    private OpenZfsFileSystemRootVolumeConfigurationArgs(OpenZfsFileSystemRootVolumeConfigurationArgs $) {
        this.copyTagsToSnapshots = $.copyTagsToSnapshots;
        this.dataCompressionType = $.dataCompressionType;
        this.nfsExports = $.nfsExports;
        this.readOnly = $.readOnly;
        this.recordSizeKib = $.recordSizeKib;
        this.userAndGroupQuotas = $.userAndGroupQuotas;
    }

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

    public static final class Builder {
        private OpenZfsFileSystemRootVolumeConfigurationArgs $;

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

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

        /**
         * @param copyTagsToSnapshots A boolean flag indicating whether tags for the file system should be copied to snapshots. The default value is false.
         * 
         * @return builder
         * 
         */
        public Builder copyTagsToSnapshots(@Nullable Output copyTagsToSnapshots) {
            $.copyTagsToSnapshots = copyTagsToSnapshots;
            return this;
        }

        /**
         * @param copyTagsToSnapshots A boolean flag indicating whether tags for the file system should be copied to snapshots. The default value is false.
         * 
         * @return builder
         * 
         */
        public Builder copyTagsToSnapshots(Boolean copyTagsToSnapshots) {
            return copyTagsToSnapshots(Output.of(copyTagsToSnapshots));
        }

        /**
         * @param dataCompressionType Method used to compress the data on the volume. Valid values are `LZ4`, `NONE` or `ZSTD`. Child volumes that don't specify compression option will inherit from parent volume. This option on file system applies to the root volume.
         * 
         * @return builder
         * 
         */
        public Builder dataCompressionType(@Nullable Output dataCompressionType) {
            $.dataCompressionType = dataCompressionType;
            return this;
        }

        /**
         * @param dataCompressionType Method used to compress the data on the volume. Valid values are `LZ4`, `NONE` or `ZSTD`. Child volumes that don't specify compression option will inherit from parent volume. This option on file system applies to the root volume.
         * 
         * @return builder
         * 
         */
        public Builder dataCompressionType(String dataCompressionType) {
            return dataCompressionType(Output.of(dataCompressionType));
        }

        /**
         * @param nfsExports NFS export configuration for the root volume. Exactly 1 item. See `nfs_exports` Block for details.
         * 
         * @return builder
         * 
         */
        public Builder nfsExports(@Nullable Output nfsExports) {
            $.nfsExports = nfsExports;
            return this;
        }

        /**
         * @param nfsExports NFS export configuration for the root volume. Exactly 1 item. See `nfs_exports` Block for details.
         * 
         * @return builder
         * 
         */
        public Builder nfsExports(OpenZfsFileSystemRootVolumeConfigurationNfsExportsArgs nfsExports) {
            return nfsExports(Output.of(nfsExports));
        }

        /**
         * @param readOnly specifies whether the volume is read-only. Default is false.
         * 
         * @return builder
         * 
         */
        public Builder readOnly(@Nullable Output readOnly) {
            $.readOnly = readOnly;
            return this;
        }

        /**
         * @param readOnly specifies whether the volume is read-only. Default is false.
         * 
         * @return builder
         * 
         */
        public Builder readOnly(Boolean readOnly) {
            return readOnly(Output.of(readOnly));
        }

        /**
         * @param recordSizeKib Specifies the record size of an OpenZFS root volume, in kibibytes (KiB). Valid values are `4`, `8`, `16`, `32`, `64`, `128`, `256`, `512`, or `1024` KiB. The default is `128` KiB.
         * 
         * @return builder
         * 
         */
        public Builder recordSizeKib(@Nullable Output recordSizeKib) {
            $.recordSizeKib = recordSizeKib;
            return this;
        }

        /**
         * @param recordSizeKib Specifies the record size of an OpenZFS root volume, in kibibytes (KiB). Valid values are `4`, `8`, `16`, `32`, `64`, `128`, `256`, `512`, or `1024` KiB. The default is `128` KiB.
         * 
         * @return builder
         * 
         */
        public Builder recordSizeKib(Integer recordSizeKib) {
            return recordSizeKib(Output.of(recordSizeKib));
        }

        /**
         * @param userAndGroupQuotas Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `user_and_group_quotas` Block for details.
         * 
         * @return builder
         * 
         */
        public Builder userAndGroupQuotas(@Nullable Output> userAndGroupQuotas) {
            $.userAndGroupQuotas = userAndGroupQuotas;
            return this;
        }

        /**
         * @param userAndGroupQuotas Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `user_and_group_quotas` Block for details.
         * 
         * @return builder
         * 
         */
        public Builder userAndGroupQuotas(List userAndGroupQuotas) {
            return userAndGroupQuotas(Output.of(userAndGroupQuotas));
        }

        /**
         * @param userAndGroupQuotas Specify how much storage users or groups can use on the volume. Maximum of 100 items. See `user_and_group_quotas` Block for details.
         * 
         * @return builder
         * 
         */
        public Builder userAndGroupQuotas(OpenZfsFileSystemRootVolumeConfigurationUserAndGroupQuotaArgs... userAndGroupQuotas) {
            return userAndGroupQuotas(List.of(userAndGroupQuotas));
        }

        public OpenZfsFileSystemRootVolumeConfigurationArgs build() {
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy