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

com.pulumi.azurenative.devtestlab.DiskArgs 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.devtestlab;

import com.pulumi.azurenative.devtestlab.enums.StorageType;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Integer;
import java.lang.String;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final DiskArgs Empty = new DiskArgs();

    /**
     * When backed by a blob, the name of the VHD blob without extension.
     * 
     */
    @Import(name="diskBlobName")
    private @Nullable Output diskBlobName;

    /**
     * @return When backed by a blob, the name of the VHD blob without extension.
     * 
     */
    public Optional> diskBlobName() {
        return Optional.ofNullable(this.diskBlobName);
    }

    /**
     * The size of the disk in Gibibytes.
     * 
     */
    @Import(name="diskSizeGiB")
    private @Nullable Output diskSizeGiB;

    /**
     * @return The size of the disk in Gibibytes.
     * 
     */
    public Optional> diskSizeGiB() {
        return Optional.ofNullable(this.diskSizeGiB);
    }

    /**
     * The storage type for the disk (i.e. Standard, Premium).
     * 
     */
    @Import(name="diskType")
    private @Nullable Output> diskType;

    /**
     * @return The storage type for the disk (i.e. Standard, Premium).
     * 
     */
    public Optional>> diskType() {
        return Optional.ofNullable(this.diskType);
    }

    /**
     * When backed by a blob, the URI of underlying blob.
     * 
     */
    @Import(name="diskUri")
    private @Nullable Output diskUri;

    /**
     * @return When backed by a blob, the URI of underlying blob.
     * 
     */
    public Optional> diskUri() {
        return Optional.ofNullable(this.diskUri);
    }

    /**
     * The host caching policy of the disk (i.e. None, ReadOnly, ReadWrite).
     * 
     */
    @Import(name="hostCaching")
    private @Nullable Output hostCaching;

    /**
     * @return The host caching policy of the disk (i.e. None, ReadOnly, ReadWrite).
     * 
     */
    public Optional> hostCaching() {
        return Optional.ofNullable(this.hostCaching);
    }

    /**
     * The name of the lab.
     * 
     */
    @Import(name="labName", required=true)
    private Output labName;

    /**
     * @return The name of the lab.
     * 
     */
    public Output labName() {
        return this.labName;
    }

    /**
     * The resource ID of the VM to which this disk is leased.
     * 
     */
    @Import(name="leasedByLabVmId")
    private @Nullable Output leasedByLabVmId;

    /**
     * @return The resource ID of the VM to which this disk is leased.
     * 
     */
    public Optional> leasedByLabVmId() {
        return Optional.ofNullable(this.leasedByLabVmId);
    }

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

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

    /**
     * When backed by managed disk, this is the ID of the compute disk resource.
     * 
     */
    @Import(name="managedDiskId")
    private @Nullable Output managedDiskId;

    /**
     * @return When backed by managed disk, this is the ID of the compute disk resource.
     * 
     */
    public Optional> managedDiskId() {
        return Optional.ofNullable(this.managedDiskId);
    }

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

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

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

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

    /**
     * When backed by a blob, the storage account where the blob is.
     * 
     */
    @Import(name="storageAccountId")
    private @Nullable Output storageAccountId;

    /**
     * @return When backed by a blob, the storage account where the blob is.
     * 
     */
    public Optional> storageAccountId() {
        return Optional.ofNullable(this.storageAccountId);
    }

    /**
     * The tags of the resource.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

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

    /**
     * The name of the user profile.
     * 
     */
    @Import(name="userName", required=true)
    private Output userName;

    /**
     * @return The name of the user profile.
     * 
     */
    public Output userName() {
        return this.userName;
    }

    private DiskArgs() {}

    private DiskArgs(DiskArgs $) {
        this.diskBlobName = $.diskBlobName;
        this.diskSizeGiB = $.diskSizeGiB;
        this.diskType = $.diskType;
        this.diskUri = $.diskUri;
        this.hostCaching = $.hostCaching;
        this.labName = $.labName;
        this.leasedByLabVmId = $.leasedByLabVmId;
        this.location = $.location;
        this.managedDiskId = $.managedDiskId;
        this.name = $.name;
        this.resourceGroupName = $.resourceGroupName;
        this.storageAccountId = $.storageAccountId;
        this.tags = $.tags;
        this.userName = $.userName;
    }

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

    public static final class Builder {
        private DiskArgs $;

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

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

        /**
         * @param diskBlobName When backed by a blob, the name of the VHD blob without extension.
         * 
         * @return builder
         * 
         */
        public Builder diskBlobName(@Nullable Output diskBlobName) {
            $.diskBlobName = diskBlobName;
            return this;
        }

        /**
         * @param diskBlobName When backed by a blob, the name of the VHD blob without extension.
         * 
         * @return builder
         * 
         */
        public Builder diskBlobName(String diskBlobName) {
            return diskBlobName(Output.of(diskBlobName));
        }

        /**
         * @param diskSizeGiB The size of the disk in Gibibytes.
         * 
         * @return builder
         * 
         */
        public Builder diskSizeGiB(@Nullable Output diskSizeGiB) {
            $.diskSizeGiB = diskSizeGiB;
            return this;
        }

        /**
         * @param diskSizeGiB The size of the disk in Gibibytes.
         * 
         * @return builder
         * 
         */
        public Builder diskSizeGiB(Integer diskSizeGiB) {
            return diskSizeGiB(Output.of(diskSizeGiB));
        }

        /**
         * @param diskType The storage type for the disk (i.e. Standard, Premium).
         * 
         * @return builder
         * 
         */
        public Builder diskType(@Nullable Output> diskType) {
            $.diskType = diskType;
            return this;
        }

        /**
         * @param diskType The storage type for the disk (i.e. Standard, Premium).
         * 
         * @return builder
         * 
         */
        public Builder diskType(Either diskType) {
            return diskType(Output.of(diskType));
        }

        /**
         * @param diskType The storage type for the disk (i.e. Standard, Premium).
         * 
         * @return builder
         * 
         */
        public Builder diskType(String diskType) {
            return diskType(Either.ofLeft(diskType));
        }

        /**
         * @param diskType The storage type for the disk (i.e. Standard, Premium).
         * 
         * @return builder
         * 
         */
        public Builder diskType(StorageType diskType) {
            return diskType(Either.ofRight(diskType));
        }

        /**
         * @param diskUri When backed by a blob, the URI of underlying blob.
         * 
         * @return builder
         * 
         */
        public Builder diskUri(@Nullable Output diskUri) {
            $.diskUri = diskUri;
            return this;
        }

        /**
         * @param diskUri When backed by a blob, the URI of underlying blob.
         * 
         * @return builder
         * 
         */
        public Builder diskUri(String diskUri) {
            return diskUri(Output.of(diskUri));
        }

        /**
         * @param hostCaching The host caching policy of the disk (i.e. None, ReadOnly, ReadWrite).
         * 
         * @return builder
         * 
         */
        public Builder hostCaching(@Nullable Output hostCaching) {
            $.hostCaching = hostCaching;
            return this;
        }

        /**
         * @param hostCaching The host caching policy of the disk (i.e. None, ReadOnly, ReadWrite).
         * 
         * @return builder
         * 
         */
        public Builder hostCaching(String hostCaching) {
            return hostCaching(Output.of(hostCaching));
        }

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

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

        /**
         * @param leasedByLabVmId The resource ID of the VM to which this disk is leased.
         * 
         * @return builder
         * 
         */
        public Builder leasedByLabVmId(@Nullable Output leasedByLabVmId) {
            $.leasedByLabVmId = leasedByLabVmId;
            return this;
        }

        /**
         * @param leasedByLabVmId The resource ID of the VM to which this disk is leased.
         * 
         * @return builder
         * 
         */
        public Builder leasedByLabVmId(String leasedByLabVmId) {
            return leasedByLabVmId(Output.of(leasedByLabVmId));
        }

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

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

        /**
         * @param managedDiskId When backed by managed disk, this is the ID of the compute disk resource.
         * 
         * @return builder
         * 
         */
        public Builder managedDiskId(@Nullable Output managedDiskId) {
            $.managedDiskId = managedDiskId;
            return this;
        }

        /**
         * @param managedDiskId When backed by managed disk, this is the ID of the compute disk resource.
         * 
         * @return builder
         * 
         */
        public Builder managedDiskId(String managedDiskId) {
            return managedDiskId(Output.of(managedDiskId));
        }

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

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

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

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

        /**
         * @param storageAccountId When backed by a blob, the storage account where the blob is.
         * 
         * @return builder
         * 
         */
        public Builder storageAccountId(@Nullable Output storageAccountId) {
            $.storageAccountId = storageAccountId;
            return this;
        }

        /**
         * @param storageAccountId When backed by a blob, the storage account where the blob is.
         * 
         * @return builder
         * 
         */
        public Builder storageAccountId(String storageAccountId) {
            return storageAccountId(Output.of(storageAccountId));
        }

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

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

        /**
         * @param userName The name of the user profile.
         * 
         * @return builder
         * 
         */
        public Builder userName(Output userName) {
            $.userName = userName;
            return this;
        }

        /**
         * @param userName The name of the user profile.
         * 
         * @return builder
         * 
         */
        public Builder userName(String userName) {
            return userName(Output.of(userName));
        }

        public DiskArgs build() {
            if ($.labName == null) {
                throw new MissingRequiredPropertyException("DiskArgs", "labName");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("DiskArgs", "resourceGroupName");
            }
            if ($.userName == null) {
                throw new MissingRequiredPropertyException("DiskArgs", "userName");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy