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

com.pulumi.azurenative.virtualmachineimages.inputs.ImageTemplateVmProfileArgs 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.azurenative.virtualmachineimages.inputs;

import com.pulumi.azurenative.virtualmachineimages.inputs.VirtualNetworkConfigArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Describes the virtual machines used to build and validate images
 * 
 */
public final class ImageTemplateVmProfileArgs extends com.pulumi.resources.ResourceArgs {

    public static final ImageTemplateVmProfileArgs Empty = new ImageTemplateVmProfileArgs();

    /**
     * Size of the OS disk in GB. Omit or specify 0 to use Azure's default OS disk size.
     * 
     */
    @Import(name="osDiskSizeGB")
    private @Nullable Output osDiskSizeGB;

    /**
     * @return Size of the OS disk in GB. Omit or specify 0 to use Azure's default OS disk size.
     * 
     */
    public Optional> osDiskSizeGB() {
        return Optional.ofNullable(this.osDiskSizeGB);
    }

    /**
     * Optional array of resource IDs of user assigned managed identities to be configured on the build VM and validation VM. This may include the identity of the image template.
     * 
     */
    @Import(name="userAssignedIdentities")
    private @Nullable Output> userAssignedIdentities;

    /**
     * @return Optional array of resource IDs of user assigned managed identities to be configured on the build VM and validation VM. This may include the identity of the image template.
     * 
     */
    public Optional>> userAssignedIdentities() {
        return Optional.ofNullable(this.userAssignedIdentities);
    }

    /**
     * Size of the virtual machine used to build, customize and capture images. Omit or specify empty string to use the default (Standard_D1_v2 for Gen1 images and Standard_D2ds_v4 for Gen2 images).
     * 
     */
    @Import(name="vmSize")
    private @Nullable Output vmSize;

    /**
     * @return Size of the virtual machine used to build, customize and capture images. Omit or specify empty string to use the default (Standard_D1_v2 for Gen1 images and Standard_D2ds_v4 for Gen2 images).
     * 
     */
    public Optional> vmSize() {
        return Optional.ofNullable(this.vmSize);
    }

    /**
     * Optional configuration of the virtual network to use to deploy the build VM and validation VM in. Omit if no specific virtual network needs to be used.
     * 
     */
    @Import(name="vnetConfig")
    private @Nullable Output vnetConfig;

    /**
     * @return Optional configuration of the virtual network to use to deploy the build VM and validation VM in. Omit if no specific virtual network needs to be used.
     * 
     */
    public Optional> vnetConfig() {
        return Optional.ofNullable(this.vnetConfig);
    }

    private ImageTemplateVmProfileArgs() {}

    private ImageTemplateVmProfileArgs(ImageTemplateVmProfileArgs $) {
        this.osDiskSizeGB = $.osDiskSizeGB;
        this.userAssignedIdentities = $.userAssignedIdentities;
        this.vmSize = $.vmSize;
        this.vnetConfig = $.vnetConfig;
    }

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

    public static final class Builder {
        private ImageTemplateVmProfileArgs $;

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

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

        /**
         * @param osDiskSizeGB Size of the OS disk in GB. Omit or specify 0 to use Azure's default OS disk size.
         * 
         * @return builder
         * 
         */
        public Builder osDiskSizeGB(@Nullable Output osDiskSizeGB) {
            $.osDiskSizeGB = osDiskSizeGB;
            return this;
        }

        /**
         * @param osDiskSizeGB Size of the OS disk in GB. Omit or specify 0 to use Azure's default OS disk size.
         * 
         * @return builder
         * 
         */
        public Builder osDiskSizeGB(Integer osDiskSizeGB) {
            return osDiskSizeGB(Output.of(osDiskSizeGB));
        }

        /**
         * @param userAssignedIdentities Optional array of resource IDs of user assigned managed identities to be configured on the build VM and validation VM. This may include the identity of the image template.
         * 
         * @return builder
         * 
         */
        public Builder userAssignedIdentities(@Nullable Output> userAssignedIdentities) {
            $.userAssignedIdentities = userAssignedIdentities;
            return this;
        }

        /**
         * @param userAssignedIdentities Optional array of resource IDs of user assigned managed identities to be configured on the build VM and validation VM. This may include the identity of the image template.
         * 
         * @return builder
         * 
         */
        public Builder userAssignedIdentities(List userAssignedIdentities) {
            return userAssignedIdentities(Output.of(userAssignedIdentities));
        }

        /**
         * @param userAssignedIdentities Optional array of resource IDs of user assigned managed identities to be configured on the build VM and validation VM. This may include the identity of the image template.
         * 
         * @return builder
         * 
         */
        public Builder userAssignedIdentities(String... userAssignedIdentities) {
            return userAssignedIdentities(List.of(userAssignedIdentities));
        }

        /**
         * @param vmSize Size of the virtual machine used to build, customize and capture images. Omit or specify empty string to use the default (Standard_D1_v2 for Gen1 images and Standard_D2ds_v4 for Gen2 images).
         * 
         * @return builder
         * 
         */
        public Builder vmSize(@Nullable Output vmSize) {
            $.vmSize = vmSize;
            return this;
        }

        /**
         * @param vmSize Size of the virtual machine used to build, customize and capture images. Omit or specify empty string to use the default (Standard_D1_v2 for Gen1 images and Standard_D2ds_v4 for Gen2 images).
         * 
         * @return builder
         * 
         */
        public Builder vmSize(String vmSize) {
            return vmSize(Output.of(vmSize));
        }

        /**
         * @param vnetConfig Optional configuration of the virtual network to use to deploy the build VM and validation VM in. Omit if no specific virtual network needs to be used.
         * 
         * @return builder
         * 
         */
        public Builder vnetConfig(@Nullable Output vnetConfig) {
            $.vnetConfig = vnetConfig;
            return this;
        }

        /**
         * @param vnetConfig Optional configuration of the virtual network to use to deploy the build VM and validation VM in. Omit if no specific virtual network needs to be used.
         * 
         * @return builder
         * 
         */
        public Builder vnetConfig(VirtualNetworkConfigArgs vnetConfig) {
            return vnetConfig(Output.of(vnetConfig));
        }

        public ImageTemplateVmProfileArgs build() {
            $.osDiskSizeGB = Codegen.integerProp("osDiskSizeGB").output().arg($.osDiskSizeGB).def(0).getNullable();
            $.vmSize = Codegen.stringProp("vmSize").output().arg($.vmSize).def("").getNullable();
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy