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

com.pulumi.azurenative.netapp.PoolArgs Maven / Gradle / Ivy

There is a newer version: 2.82.0
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.azurenative.netapp;

import com.pulumi.azurenative.netapp.enums.EncryptionType;
import com.pulumi.azurenative.netapp.enums.QosType;
import com.pulumi.azurenative.netapp.enums.ServiceLevel;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.Double;
import java.lang.String;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final PoolArgs Empty = new PoolArgs();

    /**
     * The name of the NetApp account
     * 
     */
    @Import(name="accountName", required=true)
    private Output accountName;

    /**
     * @return The name of the NetApp account
     * 
     */
    public Output accountName() {
        return this.accountName;
    }

    /**
     * If enabled (true) the pool can contain cool Access enabled volumes.
     * 
     */
    @Import(name="coolAccess")
    private @Nullable Output coolAccess;

    /**
     * @return If enabled (true) the pool can contain cool Access enabled volumes.
     * 
     */
    public Optional> coolAccess() {
        return Optional.ofNullable(this.coolAccess);
    }

    /**
     * Encryption type of the capacity pool, set encryption type for data at rest for this pool and all volumes in it. This value can only be set when creating new pool.
     * 
     */
    @Import(name="encryptionType")
    private @Nullable Output> encryptionType;

    /**
     * @return Encryption type of the capacity pool, set encryption type for data at rest for this pool and all volumes in it. This value can only be set when creating new pool.
     * 
     */
    public Optional>> encryptionType() {
        return Optional.ofNullable(this.encryptionType);
    }

    /**
     * The geo-location where the resource lives
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return The geo-location where the resource lives
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * The name of the capacity pool
     * 
     */
    @Import(name="poolName")
    private @Nullable Output poolName;

    /**
     * @return The name of the capacity pool
     * 
     */
    public Optional> poolName() {
        return Optional.ofNullable(this.poolName);
    }

    /**
     * The qos type of the pool
     * 
     */
    @Import(name="qosType")
    private @Nullable Output> qosType;

    /**
     * @return The qos type of the pool
     * 
     */
    public Optional>> qosType() {
        return Optional.ofNullable(this.qosType);
    }

    /**
     * The name of the resource group. The name is case insensitive.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The name of the resource group. The name is case insensitive.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * The service level of the file system
     * 
     */
    @Import(name="serviceLevel", required=true)
    private Output> serviceLevel;

    /**
     * @return The service level of the file system
     * 
     */
    public Output> serviceLevel() {
        return this.serviceLevel;
    }

    /**
     * Provisioned size of the pool (in bytes). Allowed values are in 1TiB chunks (value must be multiply of 4398046511104).
     * 
     */
    @Import(name="size", required=true)
    private Output size;

    /**
     * @return Provisioned size of the pool (in bytes). Allowed values are in 1TiB chunks (value must be multiply of 4398046511104).
     * 
     */
    public Output size() {
        return this.size;
    }

    /**
     * Resource tags.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Resource tags.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    private PoolArgs() {}

    private PoolArgs(PoolArgs $) {
        this.accountName = $.accountName;
        this.coolAccess = $.coolAccess;
        this.encryptionType = $.encryptionType;
        this.location = $.location;
        this.poolName = $.poolName;
        this.qosType = $.qosType;
        this.resourceGroupName = $.resourceGroupName;
        this.serviceLevel = $.serviceLevel;
        this.size = $.size;
        this.tags = $.tags;
    }

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

    public static final class Builder {
        private PoolArgs $;

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

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

        /**
         * @param accountName The name of the NetApp account
         * 
         * @return builder
         * 
         */
        public Builder accountName(Output accountName) {
            $.accountName = accountName;
            return this;
        }

        /**
         * @param accountName The name of the NetApp account
         * 
         * @return builder
         * 
         */
        public Builder accountName(String accountName) {
            return accountName(Output.of(accountName));
        }

        /**
         * @param coolAccess If enabled (true) the pool can contain cool Access enabled volumes.
         * 
         * @return builder
         * 
         */
        public Builder coolAccess(@Nullable Output coolAccess) {
            $.coolAccess = coolAccess;
            return this;
        }

        /**
         * @param coolAccess If enabled (true) the pool can contain cool Access enabled volumes.
         * 
         * @return builder
         * 
         */
        public Builder coolAccess(Boolean coolAccess) {
            return coolAccess(Output.of(coolAccess));
        }

        /**
         * @param encryptionType Encryption type of the capacity pool, set encryption type for data at rest for this pool and all volumes in it. This value can only be set when creating new pool.
         * 
         * @return builder
         * 
         */
        public Builder encryptionType(@Nullable Output> encryptionType) {
            $.encryptionType = encryptionType;
            return this;
        }

        /**
         * @param encryptionType Encryption type of the capacity pool, set encryption type for data at rest for this pool and all volumes in it. This value can only be set when creating new pool.
         * 
         * @return builder
         * 
         */
        public Builder encryptionType(Either encryptionType) {
            return encryptionType(Output.of(encryptionType));
        }

        /**
         * @param encryptionType Encryption type of the capacity pool, set encryption type for data at rest for this pool and all volumes in it. This value can only be set when creating new pool.
         * 
         * @return builder
         * 
         */
        public Builder encryptionType(String encryptionType) {
            return encryptionType(Either.ofLeft(encryptionType));
        }

        /**
         * @param encryptionType Encryption type of the capacity pool, set encryption type for data at rest for this pool and all volumes in it. This value can only be set when creating new pool.
         * 
         * @return builder
         * 
         */
        public Builder encryptionType(EncryptionType encryptionType) {
            return encryptionType(Either.ofRight(encryptionType));
        }

        /**
         * @param location The geo-location where the resource lives
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location The geo-location where the resource lives
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param poolName The name of the capacity pool
         * 
         * @return builder
         * 
         */
        public Builder poolName(@Nullable Output poolName) {
            $.poolName = poolName;
            return this;
        }

        /**
         * @param poolName The name of the capacity pool
         * 
         * @return builder
         * 
         */
        public Builder poolName(String poolName) {
            return poolName(Output.of(poolName));
        }

        /**
         * @param qosType The qos type of the pool
         * 
         * @return builder
         * 
         */
        public Builder qosType(@Nullable Output> qosType) {
            $.qosType = qosType;
            return this;
        }

        /**
         * @param qosType The qos type of the pool
         * 
         * @return builder
         * 
         */
        public Builder qosType(Either qosType) {
            return qosType(Output.of(qosType));
        }

        /**
         * @param qosType The qos type of the pool
         * 
         * @return builder
         * 
         */
        public Builder qosType(String qosType) {
            return qosType(Either.ofLeft(qosType));
        }

        /**
         * @param qosType The qos type of the pool
         * 
         * @return builder
         * 
         */
        public Builder qosType(QosType qosType) {
            return qosType(Either.ofRight(qosType));
        }

        /**
         * @param resourceGroupName The name of the resource group. The name is case insensitive.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group. The name is case insensitive.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param serviceLevel The service level of the file system
         * 
         * @return builder
         * 
         */
        public Builder serviceLevel(Output> serviceLevel) {
            $.serviceLevel = serviceLevel;
            return this;
        }

        /**
         * @param serviceLevel The service level of the file system
         * 
         * @return builder
         * 
         */
        public Builder serviceLevel(Either serviceLevel) {
            return serviceLevel(Output.of(serviceLevel));
        }

        /**
         * @param serviceLevel The service level of the file system
         * 
         * @return builder
         * 
         */
        public Builder serviceLevel(String serviceLevel) {
            return serviceLevel(Either.ofLeft(serviceLevel));
        }

        /**
         * @param serviceLevel The service level of the file system
         * 
         * @return builder
         * 
         */
        public Builder serviceLevel(ServiceLevel serviceLevel) {
            return serviceLevel(Either.ofRight(serviceLevel));
        }

        /**
         * @param size Provisioned size of the pool (in bytes). Allowed values are in 1TiB chunks (value must be multiply of 4398046511104).
         * 
         * @return builder
         * 
         */
        public Builder size(Output size) {
            $.size = size;
            return this;
        }

        /**
         * @param size Provisioned size of the pool (in bytes). Allowed values are in 1TiB chunks (value must be multiply of 4398046511104).
         * 
         * @return builder
         * 
         */
        public Builder size(Double size) {
            return size(Output.of(size));
        }

        /**
         * @param tags Resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags Resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        public PoolArgs build() {
            if ($.accountName == null) {
                throw new MissingRequiredPropertyException("PoolArgs", "accountName");
            }
            $.coolAccess = Codegen.booleanProp("coolAccess").output().arg($.coolAccess).def(false).getNullable();
            $.encryptionType = Codegen.stringProp("encryptionType").left(EncryptionType.class).output().arg($.encryptionType).def("Single").getNullable();
            $.qosType = Codegen.stringProp("qosType").left(QosType.class).output().arg($.qosType).def("Auto").getNullable();
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("PoolArgs", "resourceGroupName");
            }
            if ($.serviceLevel == null) {
                throw new MissingRequiredPropertyException("PoolArgs", "serviceLevel");
            }
            $.size = Codegen.doubleProp("size").output().arg($.size).def(4.398046511104e+12).require();
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy