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

com.pulumi.googlenative.baremetalsolution.v2.inputs.LunArgs Maven / Gradle / Ivy

// *** 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.googlenative.baremetalsolution.v2.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.googlenative.baremetalsolution.v2.enums.LunMultiprotocolType;
import com.pulumi.googlenative.baremetalsolution.v2.enums.LunState;
import com.pulumi.googlenative.baremetalsolution.v2.enums.LunStorageType;
import java.lang.Boolean;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * A storage volume logical unit number (LUN).
 * 
 */
public final class LunArgs extends com.pulumi.resources.ResourceArgs {

    public static final LunArgs Empty = new LunArgs();

    /**
     * Display if this LUN is a boot LUN.
     * 
     */
    @Import(name="bootLun")
    private @Nullable Output bootLun;

    /**
     * @return Display if this LUN is a boot LUN.
     * 
     */
    public Optional> bootLun() {
        return Optional.ofNullable(this.bootLun);
    }

    /**
     * An identifier for the LUN, generated by the backend.
     * 
     */
    @Import(name="id")
    private @Nullable Output id;

    /**
     * @return An identifier for the LUN, generated by the backend.
     * 
     */
    public Optional> id() {
        return Optional.ofNullable(this.id);
    }

    /**
     * The LUN multiprotocol type ensures the characteristics of the LUN are optimized for each operating system.
     * 
     */
    @Import(name="multiprotocolType")
    private @Nullable Output multiprotocolType;

    /**
     * @return The LUN multiprotocol type ensures the characteristics of the LUN are optimized for each operating system.
     * 
     */
    public Optional> multiprotocolType() {
        return Optional.ofNullable(this.multiprotocolType);
    }

    /**
     * Display if this LUN can be shared between multiple physical servers.
     * 
     */
    @Import(name="shareable")
    private @Nullable Output shareable;

    /**
     * @return Display if this LUN can be shared between multiple physical servers.
     * 
     */
    public Optional> shareable() {
        return Optional.ofNullable(this.shareable);
    }

    /**
     * The size of this LUN, in gigabytes.
     * 
     */
    @Import(name="sizeGb")
    private @Nullable Output sizeGb;

    /**
     * @return The size of this LUN, in gigabytes.
     * 
     */
    public Optional> sizeGb() {
        return Optional.ofNullable(this.sizeGb);
    }

    /**
     * The state of this storage volume.
     * 
     */
    @Import(name="state")
    private @Nullable Output state;

    /**
     * @return The state of this storage volume.
     * 
     */
    public Optional> state() {
        return Optional.ofNullable(this.state);
    }

    /**
     * The storage type for this LUN.
     * 
     */
    @Import(name="storageType")
    private @Nullable Output storageType;

    /**
     * @return The storage type for this LUN.
     * 
     */
    public Optional> storageType() {
        return Optional.ofNullable(this.storageType);
    }

    /**
     * Display the storage volume for this LUN.
     * 
     */
    @Import(name="storageVolume")
    private @Nullable Output storageVolume;

    /**
     * @return Display the storage volume for this LUN.
     * 
     */
    public Optional> storageVolume() {
        return Optional.ofNullable(this.storageVolume);
    }

    /**
     * The WWID for this LUN.
     * 
     */
    @Import(name="wwid")
    private @Nullable Output wwid;

    /**
     * @return The WWID for this LUN.
     * 
     */
    public Optional> wwid() {
        return Optional.ofNullable(this.wwid);
    }

    private LunArgs() {}

    private LunArgs(LunArgs $) {
        this.bootLun = $.bootLun;
        this.id = $.id;
        this.multiprotocolType = $.multiprotocolType;
        this.shareable = $.shareable;
        this.sizeGb = $.sizeGb;
        this.state = $.state;
        this.storageType = $.storageType;
        this.storageVolume = $.storageVolume;
        this.wwid = $.wwid;
    }

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

    public static final class Builder {
        private LunArgs $;

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

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

        /**
         * @param bootLun Display if this LUN is a boot LUN.
         * 
         * @return builder
         * 
         */
        public Builder bootLun(@Nullable Output bootLun) {
            $.bootLun = bootLun;
            return this;
        }

        /**
         * @param bootLun Display if this LUN is a boot LUN.
         * 
         * @return builder
         * 
         */
        public Builder bootLun(Boolean bootLun) {
            return bootLun(Output.of(bootLun));
        }

        /**
         * @param id An identifier for the LUN, generated by the backend.
         * 
         * @return builder
         * 
         */
        public Builder id(@Nullable Output id) {
            $.id = id;
            return this;
        }

        /**
         * @param id An identifier for the LUN, generated by the backend.
         * 
         * @return builder
         * 
         */
        public Builder id(String id) {
            return id(Output.of(id));
        }

        /**
         * @param multiprotocolType The LUN multiprotocol type ensures the characteristics of the LUN are optimized for each operating system.
         * 
         * @return builder
         * 
         */
        public Builder multiprotocolType(@Nullable Output multiprotocolType) {
            $.multiprotocolType = multiprotocolType;
            return this;
        }

        /**
         * @param multiprotocolType The LUN multiprotocol type ensures the characteristics of the LUN are optimized for each operating system.
         * 
         * @return builder
         * 
         */
        public Builder multiprotocolType(LunMultiprotocolType multiprotocolType) {
            return multiprotocolType(Output.of(multiprotocolType));
        }

        /**
         * @param shareable Display if this LUN can be shared between multiple physical servers.
         * 
         * @return builder
         * 
         */
        public Builder shareable(@Nullable Output shareable) {
            $.shareable = shareable;
            return this;
        }

        /**
         * @param shareable Display if this LUN can be shared between multiple physical servers.
         * 
         * @return builder
         * 
         */
        public Builder shareable(Boolean shareable) {
            return shareable(Output.of(shareable));
        }

        /**
         * @param sizeGb The size of this LUN, in gigabytes.
         * 
         * @return builder
         * 
         */
        public Builder sizeGb(@Nullable Output sizeGb) {
            $.sizeGb = sizeGb;
            return this;
        }

        /**
         * @param sizeGb The size of this LUN, in gigabytes.
         * 
         * @return builder
         * 
         */
        public Builder sizeGb(String sizeGb) {
            return sizeGb(Output.of(sizeGb));
        }

        /**
         * @param state The state of this storage volume.
         * 
         * @return builder
         * 
         */
        public Builder state(@Nullable Output state) {
            $.state = state;
            return this;
        }

        /**
         * @param state The state of this storage volume.
         * 
         * @return builder
         * 
         */
        public Builder state(LunState state) {
            return state(Output.of(state));
        }

        /**
         * @param storageType The storage type for this LUN.
         * 
         * @return builder
         * 
         */
        public Builder storageType(@Nullable Output storageType) {
            $.storageType = storageType;
            return this;
        }

        /**
         * @param storageType The storage type for this LUN.
         * 
         * @return builder
         * 
         */
        public Builder storageType(LunStorageType storageType) {
            return storageType(Output.of(storageType));
        }

        /**
         * @param storageVolume Display the storage volume for this LUN.
         * 
         * @return builder
         * 
         */
        public Builder storageVolume(@Nullable Output storageVolume) {
            $.storageVolume = storageVolume;
            return this;
        }

        /**
         * @param storageVolume Display the storage volume for this LUN.
         * 
         * @return builder
         * 
         */
        public Builder storageVolume(String storageVolume) {
            return storageVolume(Output.of(storageVolume));
        }

        /**
         * @param wwid The WWID for this LUN.
         * 
         * @return builder
         * 
         */
        public Builder wwid(@Nullable Output wwid) {
            $.wwid = wwid;
            return this;
        }

        /**
         * @param wwid The WWID for this LUN.
         * 
         * @return builder
         * 
         */
        public Builder wwid(String wwid) {
            return wwid(Output.of(wwid));
        }

        public LunArgs build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy