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

com.pulumi.azurenative.networkcloud.VirtualMachineArgs Maven / Gradle / Ivy

There is a newer version: 2.78.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.networkcloud;

import com.pulumi.azurenative.networkcloud.enums.VirtualMachineBootMethod;
import com.pulumi.azurenative.networkcloud.enums.VirtualMachineDeviceModelType;
import com.pulumi.azurenative.networkcloud.enums.VirtualMachineIsolateEmulatorThread;
import com.pulumi.azurenative.networkcloud.enums.VirtualMachineVirtioInterfaceType;
import com.pulumi.azurenative.networkcloud.inputs.ExtendedLocationArgs;
import com.pulumi.azurenative.networkcloud.inputs.ImageRepositoryCredentialsArgs;
import com.pulumi.azurenative.networkcloud.inputs.NetworkAttachmentArgs;
import com.pulumi.azurenative.networkcloud.inputs.SshPublicKeyArgs;
import com.pulumi.azurenative.networkcloud.inputs.StorageProfileArgs;
import com.pulumi.azurenative.networkcloud.inputs.VirtualMachinePlacementHintArgs;
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.Double;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final VirtualMachineArgs Empty = new VirtualMachineArgs();

    /**
     * The name of the administrator to which the ssh public keys will be added into the authorized keys.
     * 
     */
    @Import(name="adminUsername", required=true)
    private Output adminUsername;

    /**
     * @return The name of the administrator to which the ssh public keys will be added into the authorized keys.
     * 
     */
    public Output adminUsername() {
        return this.adminUsername;
    }

    /**
     * Selects the boot method for the virtual machine.
     * 
     */
    @Import(name="bootMethod")
    private @Nullable Output> bootMethod;

    /**
     * @return Selects the boot method for the virtual machine.
     * 
     */
    public Optional>> bootMethod() {
        return Optional.ofNullable(this.bootMethod);
    }

    /**
     * The cloud service network that provides platform-level services for the virtual machine.
     * 
     */
    @Import(name="cloudServicesNetworkAttachment", required=true)
    private Output cloudServicesNetworkAttachment;

    /**
     * @return The cloud service network that provides platform-level services for the virtual machine.
     * 
     */
    public Output cloudServicesNetworkAttachment() {
        return this.cloudServicesNetworkAttachment;
    }

    /**
     * The number of CPU cores in the virtual machine.
     * 
     */
    @Import(name="cpuCores", required=true)
    private Output cpuCores;

    /**
     * @return The number of CPU cores in the virtual machine.
     * 
     */
    public Output cpuCores() {
        return this.cpuCores;
    }

    /**
     * The extended location of the cluster associated with the resource.
     * 
     */
    @Import(name="extendedLocation", required=true)
    private Output extendedLocation;

    /**
     * @return The extended location of the cluster associated with the resource.
     * 
     */
    public Output extendedLocation() {
        return this.extendedLocation;
    }

    /**
     * Field Deprecated, the value will be ignored if provided. The indicator of whether one of the specified CPU cores is isolated to run the emulator thread for this virtual machine.
     * 
     */
    @Import(name="isolateEmulatorThread")
    private @Nullable Output> isolateEmulatorThread;

    /**
     * @return Field Deprecated, the value will be ignored if provided. The indicator of whether one of the specified CPU cores is isolated to run the emulator thread for this virtual machine.
     * 
     */
    public Optional>> isolateEmulatorThread() {
        return Optional.ofNullable(this.isolateEmulatorThread);
    }

    /**
     * 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 memory size of the virtual machine in GB.
     * 
     */
    @Import(name="memorySizeGB", required=true)
    private Output memorySizeGB;

    /**
     * @return The memory size of the virtual machine in GB.
     * 
     */
    public Output memorySizeGB() {
        return this.memorySizeGB;
    }

    /**
     * The list of network attachments to the virtual machine.
     * 
     */
    @Import(name="networkAttachments")
    private @Nullable Output> networkAttachments;

    /**
     * @return The list of network attachments to the virtual machine.
     * 
     */
    public Optional>> networkAttachments() {
        return Optional.ofNullable(this.networkAttachments);
    }

    /**
     * The Base64 encoded cloud-init network data.
     * 
     */
    @Import(name="networkData")
    private @Nullable Output networkData;

    /**
     * @return The Base64 encoded cloud-init network data.
     * 
     */
    public Optional> networkData() {
        return Optional.ofNullable(this.networkData);
    }

    /**
     * The scheduling hints for the virtual machine.
     * 
     */
    @Import(name="placementHints")
    private @Nullable Output> placementHints;

    /**
     * @return The scheduling hints for the virtual machine.
     * 
     */
    public Optional>> placementHints() {
        return Optional.ofNullable(this.placementHints);
    }

    /**
     * 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 list of ssh public keys. Each key will be added to the virtual machine using the cloud-init ssh_authorized_keys mechanism for the adminUsername.
     * 
     */
    @Import(name="sshPublicKeys")
    private @Nullable Output> sshPublicKeys;

    /**
     * @return The list of ssh public keys. Each key will be added to the virtual machine using the cloud-init ssh_authorized_keys mechanism for the adminUsername.
     * 
     */
    public Optional>> sshPublicKeys() {
        return Optional.ofNullable(this.sshPublicKeys);
    }

    /**
     * The storage profile that specifies size and other parameters about the disks related to the virtual machine.
     * 
     */
    @Import(name="storageProfile", required=true)
    private Output storageProfile;

    /**
     * @return The storage profile that specifies size and other parameters about the disks related to the virtual machine.
     * 
     */
    public Output storageProfile() {
        return this.storageProfile;
    }

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

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

    /**
     * The Base64 encoded cloud-init user data.
     * 
     */
    @Import(name="userData")
    private @Nullable Output userData;

    /**
     * @return The Base64 encoded cloud-init user data.
     * 
     */
    public Optional> userData() {
        return Optional.ofNullable(this.userData);
    }

    /**
     * Field Deprecated, use virtualizationModel instead. The type of the virtio interface.
     * 
     */
    @Import(name="virtioInterface")
    private @Nullable Output> virtioInterface;

    /**
     * @return Field Deprecated, use virtualizationModel instead. The type of the virtio interface.
     * 
     */
    public Optional>> virtioInterface() {
        return Optional.ofNullable(this.virtioInterface);
    }

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

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

    /**
     * The type of the device model to use.
     * 
     */
    @Import(name="vmDeviceModel")
    private @Nullable Output> vmDeviceModel;

    /**
     * @return The type of the device model to use.
     * 
     */
    public Optional>> vmDeviceModel() {
        return Optional.ofNullable(this.vmDeviceModel);
    }

    /**
     * The virtual machine image that is currently provisioned to the OS disk, using the full url and tag notation used to pull the image.
     * 
     */
    @Import(name="vmImage", required=true)
    private Output vmImage;

    /**
     * @return The virtual machine image that is currently provisioned to the OS disk, using the full url and tag notation used to pull the image.
     * 
     */
    public Output vmImage() {
        return this.vmImage;
    }

    /**
     * The credentials used to login to the image repository that has access to the specified image.
     * 
     */
    @Import(name="vmImageRepositoryCredentials")
    private @Nullable Output vmImageRepositoryCredentials;

    /**
     * @return The credentials used to login to the image repository that has access to the specified image.
     * 
     */
    public Optional> vmImageRepositoryCredentials() {
        return Optional.ofNullable(this.vmImageRepositoryCredentials);
    }

    private VirtualMachineArgs() {}

    private VirtualMachineArgs(VirtualMachineArgs $) {
        this.adminUsername = $.adminUsername;
        this.bootMethod = $.bootMethod;
        this.cloudServicesNetworkAttachment = $.cloudServicesNetworkAttachment;
        this.cpuCores = $.cpuCores;
        this.extendedLocation = $.extendedLocation;
        this.isolateEmulatorThread = $.isolateEmulatorThread;
        this.location = $.location;
        this.memorySizeGB = $.memorySizeGB;
        this.networkAttachments = $.networkAttachments;
        this.networkData = $.networkData;
        this.placementHints = $.placementHints;
        this.resourceGroupName = $.resourceGroupName;
        this.sshPublicKeys = $.sshPublicKeys;
        this.storageProfile = $.storageProfile;
        this.tags = $.tags;
        this.userData = $.userData;
        this.virtioInterface = $.virtioInterface;
        this.virtualMachineName = $.virtualMachineName;
        this.vmDeviceModel = $.vmDeviceModel;
        this.vmImage = $.vmImage;
        this.vmImageRepositoryCredentials = $.vmImageRepositoryCredentials;
    }

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

    public static final class Builder {
        private VirtualMachineArgs $;

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

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

        /**
         * @param adminUsername The name of the administrator to which the ssh public keys will be added into the authorized keys.
         * 
         * @return builder
         * 
         */
        public Builder adminUsername(Output adminUsername) {
            $.adminUsername = adminUsername;
            return this;
        }

        /**
         * @param adminUsername The name of the administrator to which the ssh public keys will be added into the authorized keys.
         * 
         * @return builder
         * 
         */
        public Builder adminUsername(String adminUsername) {
            return adminUsername(Output.of(adminUsername));
        }

        /**
         * @param bootMethod Selects the boot method for the virtual machine.
         * 
         * @return builder
         * 
         */
        public Builder bootMethod(@Nullable Output> bootMethod) {
            $.bootMethod = bootMethod;
            return this;
        }

        /**
         * @param bootMethod Selects the boot method for the virtual machine.
         * 
         * @return builder
         * 
         */
        public Builder bootMethod(Either bootMethod) {
            return bootMethod(Output.of(bootMethod));
        }

        /**
         * @param bootMethod Selects the boot method for the virtual machine.
         * 
         * @return builder
         * 
         */
        public Builder bootMethod(String bootMethod) {
            return bootMethod(Either.ofLeft(bootMethod));
        }

        /**
         * @param bootMethod Selects the boot method for the virtual machine.
         * 
         * @return builder
         * 
         */
        public Builder bootMethod(VirtualMachineBootMethod bootMethod) {
            return bootMethod(Either.ofRight(bootMethod));
        }

        /**
         * @param cloudServicesNetworkAttachment The cloud service network that provides platform-level services for the virtual machine.
         * 
         * @return builder
         * 
         */
        public Builder cloudServicesNetworkAttachment(Output cloudServicesNetworkAttachment) {
            $.cloudServicesNetworkAttachment = cloudServicesNetworkAttachment;
            return this;
        }

        /**
         * @param cloudServicesNetworkAttachment The cloud service network that provides platform-level services for the virtual machine.
         * 
         * @return builder
         * 
         */
        public Builder cloudServicesNetworkAttachment(NetworkAttachmentArgs cloudServicesNetworkAttachment) {
            return cloudServicesNetworkAttachment(Output.of(cloudServicesNetworkAttachment));
        }

        /**
         * @param cpuCores The number of CPU cores in the virtual machine.
         * 
         * @return builder
         * 
         */
        public Builder cpuCores(Output cpuCores) {
            $.cpuCores = cpuCores;
            return this;
        }

        /**
         * @param cpuCores The number of CPU cores in the virtual machine.
         * 
         * @return builder
         * 
         */
        public Builder cpuCores(Double cpuCores) {
            return cpuCores(Output.of(cpuCores));
        }

        /**
         * @param extendedLocation The extended location of the cluster associated with the resource.
         * 
         * @return builder
         * 
         */
        public Builder extendedLocation(Output extendedLocation) {
            $.extendedLocation = extendedLocation;
            return this;
        }

        /**
         * @param extendedLocation The extended location of the cluster associated with the resource.
         * 
         * @return builder
         * 
         */
        public Builder extendedLocation(ExtendedLocationArgs extendedLocation) {
            return extendedLocation(Output.of(extendedLocation));
        }

        /**
         * @param isolateEmulatorThread Field Deprecated, the value will be ignored if provided. The indicator of whether one of the specified CPU cores is isolated to run the emulator thread for this virtual machine.
         * 
         * @return builder
         * 
         */
        public Builder isolateEmulatorThread(@Nullable Output> isolateEmulatorThread) {
            $.isolateEmulatorThread = isolateEmulatorThread;
            return this;
        }

        /**
         * @param isolateEmulatorThread Field Deprecated, the value will be ignored if provided. The indicator of whether one of the specified CPU cores is isolated to run the emulator thread for this virtual machine.
         * 
         * @return builder
         * 
         */
        public Builder isolateEmulatorThread(Either isolateEmulatorThread) {
            return isolateEmulatorThread(Output.of(isolateEmulatorThread));
        }

        /**
         * @param isolateEmulatorThread Field Deprecated, the value will be ignored if provided. The indicator of whether one of the specified CPU cores is isolated to run the emulator thread for this virtual machine.
         * 
         * @return builder
         * 
         */
        public Builder isolateEmulatorThread(String isolateEmulatorThread) {
            return isolateEmulatorThread(Either.ofLeft(isolateEmulatorThread));
        }

        /**
         * @param isolateEmulatorThread Field Deprecated, the value will be ignored if provided. The indicator of whether one of the specified CPU cores is isolated to run the emulator thread for this virtual machine.
         * 
         * @return builder
         * 
         */
        public Builder isolateEmulatorThread(VirtualMachineIsolateEmulatorThread isolateEmulatorThread) {
            return isolateEmulatorThread(Either.ofRight(isolateEmulatorThread));
        }

        /**
         * @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 memorySizeGB The memory size of the virtual machine in GB.
         * 
         * @return builder
         * 
         */
        public Builder memorySizeGB(Output memorySizeGB) {
            $.memorySizeGB = memorySizeGB;
            return this;
        }

        /**
         * @param memorySizeGB The memory size of the virtual machine in GB.
         * 
         * @return builder
         * 
         */
        public Builder memorySizeGB(Double memorySizeGB) {
            return memorySizeGB(Output.of(memorySizeGB));
        }

        /**
         * @param networkAttachments The list of network attachments to the virtual machine.
         * 
         * @return builder
         * 
         */
        public Builder networkAttachments(@Nullable Output> networkAttachments) {
            $.networkAttachments = networkAttachments;
            return this;
        }

        /**
         * @param networkAttachments The list of network attachments to the virtual machine.
         * 
         * @return builder
         * 
         */
        public Builder networkAttachments(List networkAttachments) {
            return networkAttachments(Output.of(networkAttachments));
        }

        /**
         * @param networkAttachments The list of network attachments to the virtual machine.
         * 
         * @return builder
         * 
         */
        public Builder networkAttachments(NetworkAttachmentArgs... networkAttachments) {
            return networkAttachments(List.of(networkAttachments));
        }

        /**
         * @param networkData The Base64 encoded cloud-init network data.
         * 
         * @return builder
         * 
         */
        public Builder networkData(@Nullable Output networkData) {
            $.networkData = networkData;
            return this;
        }

        /**
         * @param networkData The Base64 encoded cloud-init network data.
         * 
         * @return builder
         * 
         */
        public Builder networkData(String networkData) {
            return networkData(Output.of(networkData));
        }

        /**
         * @param placementHints The scheduling hints for the virtual machine.
         * 
         * @return builder
         * 
         */
        public Builder placementHints(@Nullable Output> placementHints) {
            $.placementHints = placementHints;
            return this;
        }

        /**
         * @param placementHints The scheduling hints for the virtual machine.
         * 
         * @return builder
         * 
         */
        public Builder placementHints(List placementHints) {
            return placementHints(Output.of(placementHints));
        }

        /**
         * @param placementHints The scheduling hints for the virtual machine.
         * 
         * @return builder
         * 
         */
        public Builder placementHints(VirtualMachinePlacementHintArgs... placementHints) {
            return placementHints(List.of(placementHints));
        }

        /**
         * @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 sshPublicKeys The list of ssh public keys. Each key will be added to the virtual machine using the cloud-init ssh_authorized_keys mechanism for the adminUsername.
         * 
         * @return builder
         * 
         */
        public Builder sshPublicKeys(@Nullable Output> sshPublicKeys) {
            $.sshPublicKeys = sshPublicKeys;
            return this;
        }

        /**
         * @param sshPublicKeys The list of ssh public keys. Each key will be added to the virtual machine using the cloud-init ssh_authorized_keys mechanism for the adminUsername.
         * 
         * @return builder
         * 
         */
        public Builder sshPublicKeys(List sshPublicKeys) {
            return sshPublicKeys(Output.of(sshPublicKeys));
        }

        /**
         * @param sshPublicKeys The list of ssh public keys. Each key will be added to the virtual machine using the cloud-init ssh_authorized_keys mechanism for the adminUsername.
         * 
         * @return builder
         * 
         */
        public Builder sshPublicKeys(SshPublicKeyArgs... sshPublicKeys) {
            return sshPublicKeys(List.of(sshPublicKeys));
        }

        /**
         * @param storageProfile The storage profile that specifies size and other parameters about the disks related to the virtual machine.
         * 
         * @return builder
         * 
         */
        public Builder storageProfile(Output storageProfile) {
            $.storageProfile = storageProfile;
            return this;
        }

        /**
         * @param storageProfile The storage profile that specifies size and other parameters about the disks related to the virtual machine.
         * 
         * @return builder
         * 
         */
        public Builder storageProfile(StorageProfileArgs storageProfile) {
            return storageProfile(Output.of(storageProfile));
        }

        /**
         * @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));
        }

        /**
         * @param userData The Base64 encoded cloud-init user data.
         * 
         * @return builder
         * 
         */
        public Builder userData(@Nullable Output userData) {
            $.userData = userData;
            return this;
        }

        /**
         * @param userData The Base64 encoded cloud-init user data.
         * 
         * @return builder
         * 
         */
        public Builder userData(String userData) {
            return userData(Output.of(userData));
        }

        /**
         * @param virtioInterface Field Deprecated, use virtualizationModel instead. The type of the virtio interface.
         * 
         * @return builder
         * 
         */
        public Builder virtioInterface(@Nullable Output> virtioInterface) {
            $.virtioInterface = virtioInterface;
            return this;
        }

        /**
         * @param virtioInterface Field Deprecated, use virtualizationModel instead. The type of the virtio interface.
         * 
         * @return builder
         * 
         */
        public Builder virtioInterface(Either virtioInterface) {
            return virtioInterface(Output.of(virtioInterface));
        }

        /**
         * @param virtioInterface Field Deprecated, use virtualizationModel instead. The type of the virtio interface.
         * 
         * @return builder
         * 
         */
        public Builder virtioInterface(String virtioInterface) {
            return virtioInterface(Either.ofLeft(virtioInterface));
        }

        /**
         * @param virtioInterface Field Deprecated, use virtualizationModel instead. The type of the virtio interface.
         * 
         * @return builder
         * 
         */
        public Builder virtioInterface(VirtualMachineVirtioInterfaceType virtioInterface) {
            return virtioInterface(Either.ofRight(virtioInterface));
        }

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

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

        /**
         * @param vmDeviceModel The type of the device model to use.
         * 
         * @return builder
         * 
         */
        public Builder vmDeviceModel(@Nullable Output> vmDeviceModel) {
            $.vmDeviceModel = vmDeviceModel;
            return this;
        }

        /**
         * @param vmDeviceModel The type of the device model to use.
         * 
         * @return builder
         * 
         */
        public Builder vmDeviceModel(Either vmDeviceModel) {
            return vmDeviceModel(Output.of(vmDeviceModel));
        }

        /**
         * @param vmDeviceModel The type of the device model to use.
         * 
         * @return builder
         * 
         */
        public Builder vmDeviceModel(String vmDeviceModel) {
            return vmDeviceModel(Either.ofLeft(vmDeviceModel));
        }

        /**
         * @param vmDeviceModel The type of the device model to use.
         * 
         * @return builder
         * 
         */
        public Builder vmDeviceModel(VirtualMachineDeviceModelType vmDeviceModel) {
            return vmDeviceModel(Either.ofRight(vmDeviceModel));
        }

        /**
         * @param vmImage The virtual machine image that is currently provisioned to the OS disk, using the full url and tag notation used to pull the image.
         * 
         * @return builder
         * 
         */
        public Builder vmImage(Output vmImage) {
            $.vmImage = vmImage;
            return this;
        }

        /**
         * @param vmImage The virtual machine image that is currently provisioned to the OS disk, using the full url and tag notation used to pull the image.
         * 
         * @return builder
         * 
         */
        public Builder vmImage(String vmImage) {
            return vmImage(Output.of(vmImage));
        }

        /**
         * @param vmImageRepositoryCredentials The credentials used to login to the image repository that has access to the specified image.
         * 
         * @return builder
         * 
         */
        public Builder vmImageRepositoryCredentials(@Nullable Output vmImageRepositoryCredentials) {
            $.vmImageRepositoryCredentials = vmImageRepositoryCredentials;
            return this;
        }

        /**
         * @param vmImageRepositoryCredentials The credentials used to login to the image repository that has access to the specified image.
         * 
         * @return builder
         * 
         */
        public Builder vmImageRepositoryCredentials(ImageRepositoryCredentialsArgs vmImageRepositoryCredentials) {
            return vmImageRepositoryCredentials(Output.of(vmImageRepositoryCredentials));
        }

        public VirtualMachineArgs build() {
            if ($.adminUsername == null) {
                throw new MissingRequiredPropertyException("VirtualMachineArgs", "adminUsername");
            }
            $.bootMethod = Codegen.stringProp("bootMethod").left(VirtualMachineBootMethod.class).output().arg($.bootMethod).def("UEFI").getNullable();
            if ($.cloudServicesNetworkAttachment == null) {
                throw new MissingRequiredPropertyException("VirtualMachineArgs", "cloudServicesNetworkAttachment");
            }
            if ($.cpuCores == null) {
                throw new MissingRequiredPropertyException("VirtualMachineArgs", "cpuCores");
            }
            if ($.extendedLocation == null) {
                throw new MissingRequiredPropertyException("VirtualMachineArgs", "extendedLocation");
            }
            $.isolateEmulatorThread = Codegen.stringProp("isolateEmulatorThread").left(VirtualMachineIsolateEmulatorThread.class).output().arg($.isolateEmulatorThread).def("True").getNullable();
            if ($.memorySizeGB == null) {
                throw new MissingRequiredPropertyException("VirtualMachineArgs", "memorySizeGB");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("VirtualMachineArgs", "resourceGroupName");
            }
            if ($.storageProfile == null) {
                throw new MissingRequiredPropertyException("VirtualMachineArgs", "storageProfile");
            }
            $.virtioInterface = Codegen.stringProp("virtioInterface").left(VirtualMachineVirtioInterfaceType.class).output().arg($.virtioInterface).def("Modern").getNullable();
            $.vmDeviceModel = Codegen.stringProp("vmDeviceModel").left(VirtualMachineDeviceModelType.class).output().arg($.vmDeviceModel).def("T2").getNullable();
            if ($.vmImage == null) {
                throw new MissingRequiredPropertyException("VirtualMachineArgs", "vmImage");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy