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

com.pulumi.azurenative.compute.outputs.GetVirtualMachineResult 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.compute.outputs;

import com.pulumi.azurenative.compute.outputs.AdditionalCapabilitiesResponse;
import com.pulumi.azurenative.compute.outputs.ApplicationProfileResponse;
import com.pulumi.azurenative.compute.outputs.BillingProfileResponse;
import com.pulumi.azurenative.compute.outputs.CapacityReservationProfileResponse;
import com.pulumi.azurenative.compute.outputs.DiagnosticsProfileResponse;
import com.pulumi.azurenative.compute.outputs.ExtendedLocationResponse;
import com.pulumi.azurenative.compute.outputs.HardwareProfileResponse;
import com.pulumi.azurenative.compute.outputs.NetworkProfileResponse;
import com.pulumi.azurenative.compute.outputs.OSProfileResponse;
import com.pulumi.azurenative.compute.outputs.PlanResponse;
import com.pulumi.azurenative.compute.outputs.ScheduledEventsProfileResponse;
import com.pulumi.azurenative.compute.outputs.SecurityProfileResponse;
import com.pulumi.azurenative.compute.outputs.StorageProfileResponse;
import com.pulumi.azurenative.compute.outputs.SubResourceResponse;
import com.pulumi.azurenative.compute.outputs.VirtualMachineExtensionResponse;
import com.pulumi.azurenative.compute.outputs.VirtualMachineIdentityResponse;
import com.pulumi.azurenative.compute.outputs.VirtualMachineInstanceViewResponse;
import com.pulumi.core.annotations.CustomType;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;

@CustomType
public final class GetVirtualMachineResult {
    /**
     * @return Specifies additional capabilities enabled or disabled on the virtual machine.
     * 
     */
    private @Nullable AdditionalCapabilitiesResponse additionalCapabilities;
    /**
     * @return Specifies the gallery applications that should be made available to the VM/VMSS.
     * 
     */
    private @Nullable ApplicationProfileResponse applicationProfile;
    /**
     * @return Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview). For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates). Currently, a VM can only be added to availability set at creation time. The availability set to which the VM is being added should be under the same resource group as the availability set resource. An existing VM cannot be added to an availability set. This property cannot exist along with a non-null properties.virtualMachineScaleSet reference.
     * 
     */
    private @Nullable SubResourceResponse availabilitySet;
    /**
     * @return Specifies the billing related details of a Azure Spot virtual machine. Minimum api-version: 2019-03-01.
     * 
     */
    private @Nullable BillingProfileResponse billingProfile;
    /**
     * @return Specifies information about the capacity reservation that is used to allocate virtual machine. Minimum api-version: 2021-04-01.
     * 
     */
    private @Nullable CapacityReservationProfileResponse capacityReservation;
    /**
     * @return Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15.
     * 
     */
    private @Nullable DiagnosticsProfileResponse diagnosticsProfile;
    /**
     * @return Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview.
     * 
     */
    private @Nullable String evictionPolicy;
    /**
     * @return The extended location of the Virtual Machine.
     * 
     */
    private @Nullable ExtendedLocationResponse extendedLocation;
    /**
     * @return Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01.
     * 
     */
    private @Nullable String extensionsTimeBudget;
    /**
     * @return Specifies the hardware settings for the virtual machine.
     * 
     */
    private @Nullable HardwareProfileResponse hardwareProfile;
    /**
     * @return Specifies information about the dedicated host that the virtual machine resides in. Minimum api-version: 2018-10-01.
     * 
     */
    private @Nullable SubResourceResponse host;
    /**
     * @return Specifies information about the dedicated host group that the virtual machine resides in. **Note:** User cannot specify both host and hostGroup properties. Minimum api-version: 2020-06-01.
     * 
     */
    private @Nullable SubResourceResponse hostGroup;
    /**
     * @return Resource Id
     * 
     */
    private String id;
    /**
     * @return The identity of the virtual machine, if configured.
     * 
     */
    private @Nullable VirtualMachineIdentityResponse identity;
    /**
     * @return The virtual machine instance view.
     * 
     */
    private VirtualMachineInstanceViewResponse instanceView;
    /**
     * @return Specifies that the image or disk that is being used was licensed on-premises. <br><br> Possible values for Windows Server operating system are: <br><br> Windows_Client <br><br> Windows_Server <br><br> Possible values for Linux Server operating system are: <br><br> RHEL_BYOS (for RHEL) <br><br> SLES_BYOS (for SUSE) <br><br> For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing) <br><br> [Azure Hybrid Use Benefit for Linux Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux) <br><br> Minimum api-version: 2015-06-15
     * 
     */
    private @Nullable String licenseType;
    /**
     * @return Resource location
     * 
     */
    private String location;
    /**
     * @return Resource name
     * 
     */
    private String name;
    /**
     * @return Specifies the network interfaces of the virtual machine.
     * 
     */
    private @Nullable NetworkProfileResponse networkProfile;
    /**
     * @return Specifies the operating system settings used while creating the virtual machine. Some of the settings cannot be changed once VM is provisioned.
     * 
     */
    private @Nullable OSProfileResponse osProfile;
    /**
     * @return Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use.  In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started ->**. Enter any required information and then click **Save**.
     * 
     */
    private @Nullable PlanResponse plan;
    /**
     * @return Specifies the scale set logical fault domain into which the Virtual Machine will be created. By default, the Virtual Machine will by automatically assigned to a fault domain that best maintains balance across available fault domains. This is applicable only if the 'virtualMachineScaleSet' property of this Virtual Machine is set. The Virtual Machine Scale Set that is referenced, must have 'platformFaultDomainCount' greater than 1. This property cannot be updated once the Virtual Machine is created. Fault domain assignment can be viewed in the Virtual Machine Instance View. Minimum api‐version: 2020‐12‐01.
     * 
     */
    private @Nullable Integer platformFaultDomain;
    /**
     * @return Specifies the priority for the virtual machine. Minimum api-version: 2019-03-01
     * 
     */
    private @Nullable String priority;
    /**
     * @return The provisioning state, which only appears in the response.
     * 
     */
    private String provisioningState;
    /**
     * @return Specifies information about the proximity placement group that the virtual machine should be assigned to. Minimum api-version: 2018-04-01.
     * 
     */
    private @Nullable SubResourceResponse proximityPlacementGroup;
    /**
     * @return The virtual machine child extension resources.
     * 
     */
    private List resources;
    /**
     * @return Specifies Scheduled Event related configurations.
     * 
     */
    private @Nullable ScheduledEventsProfileResponse scheduledEventsProfile;
    /**
     * @return Specifies the Security related profile settings for the virtual machine.
     * 
     */
    private @Nullable SecurityProfileResponse securityProfile;
    /**
     * @return Specifies the storage settings for the virtual machine disks.
     * 
     */
    private @Nullable StorageProfileResponse storageProfile;
    /**
     * @return Resource tags
     * 
     */
    private @Nullable Map tags;
    /**
     * @return Specifies the time at which the Virtual Machine resource was created. Minimum api-version: 2021-11-01.
     * 
     */
    private String timeCreated;
    /**
     * @return Resource type
     * 
     */
    private String type;
    /**
     * @return UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01.
     * 
     */
    private @Nullable String userData;
    /**
     * @return Specifies information about the virtual machine scale set that the virtual machine should be assigned to. Virtual machines specified in the same virtual machine scale set are allocated to different nodes to maximize availability. Currently, a VM can only be added to virtual machine scale set at creation time. An existing VM cannot be added to a virtual machine scale set. This property cannot exist along with a non-null properties.availabilitySet reference. Minimum api‐version: 2019‐03‐01.
     * 
     */
    private @Nullable SubResourceResponse virtualMachineScaleSet;
    /**
     * @return Specifies the VM unique ID which is a 128-bits identifier that is encoded and stored in all Azure IaaS VMs SMBIOS and can be read using platform BIOS commands.
     * 
     */
    private String vmId;
    /**
     * @return The virtual machine zones.
     * 
     */
    private @Nullable List zones;

    private GetVirtualMachineResult() {}
    /**
     * @return Specifies additional capabilities enabled or disabled on the virtual machine.
     * 
     */
    public Optional additionalCapabilities() {
        return Optional.ofNullable(this.additionalCapabilities);
    }
    /**
     * @return Specifies the gallery applications that should be made available to the VM/VMSS.
     * 
     */
    public Optional applicationProfile() {
        return Optional.ofNullable(this.applicationProfile);
    }
    /**
     * @return Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview). For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates). Currently, a VM can only be added to availability set at creation time. The availability set to which the VM is being added should be under the same resource group as the availability set resource. An existing VM cannot be added to an availability set. This property cannot exist along with a non-null properties.virtualMachineScaleSet reference.
     * 
     */
    public Optional availabilitySet() {
        return Optional.ofNullable(this.availabilitySet);
    }
    /**
     * @return Specifies the billing related details of a Azure Spot virtual machine. Minimum api-version: 2019-03-01.
     * 
     */
    public Optional billingProfile() {
        return Optional.ofNullable(this.billingProfile);
    }
    /**
     * @return Specifies information about the capacity reservation that is used to allocate virtual machine. Minimum api-version: 2021-04-01.
     * 
     */
    public Optional capacityReservation() {
        return Optional.ofNullable(this.capacityReservation);
    }
    /**
     * @return Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15.
     * 
     */
    public Optional diagnosticsProfile() {
        return Optional.ofNullable(this.diagnosticsProfile);
    }
    /**
     * @return Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview.
     * 
     */
    public Optional evictionPolicy() {
        return Optional.ofNullable(this.evictionPolicy);
    }
    /**
     * @return The extended location of the Virtual Machine.
     * 
     */
    public Optional extendedLocation() {
        return Optional.ofNullable(this.extendedLocation);
    }
    /**
     * @return Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01.
     * 
     */
    public Optional extensionsTimeBudget() {
        return Optional.ofNullable(this.extensionsTimeBudget);
    }
    /**
     * @return Specifies the hardware settings for the virtual machine.
     * 
     */
    public Optional hardwareProfile() {
        return Optional.ofNullable(this.hardwareProfile);
    }
    /**
     * @return Specifies information about the dedicated host that the virtual machine resides in. Minimum api-version: 2018-10-01.
     * 
     */
    public Optional host() {
        return Optional.ofNullable(this.host);
    }
    /**
     * @return Specifies information about the dedicated host group that the virtual machine resides in. **Note:** User cannot specify both host and hostGroup properties. Minimum api-version: 2020-06-01.
     * 
     */
    public Optional hostGroup() {
        return Optional.ofNullable(this.hostGroup);
    }
    /**
     * @return Resource Id
     * 
     */
    public String id() {
        return this.id;
    }
    /**
     * @return The identity of the virtual machine, if configured.
     * 
     */
    public Optional identity() {
        return Optional.ofNullable(this.identity);
    }
    /**
     * @return The virtual machine instance view.
     * 
     */
    public VirtualMachineInstanceViewResponse instanceView() {
        return this.instanceView;
    }
    /**
     * @return Specifies that the image or disk that is being used was licensed on-premises. <br><br> Possible values for Windows Server operating system are: <br><br> Windows_Client <br><br> Windows_Server <br><br> Possible values for Linux Server operating system are: <br><br> RHEL_BYOS (for RHEL) <br><br> SLES_BYOS (for SUSE) <br><br> For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing) <br><br> [Azure Hybrid Use Benefit for Linux Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux) <br><br> Minimum api-version: 2015-06-15
     * 
     */
    public Optional licenseType() {
        return Optional.ofNullable(this.licenseType);
    }
    /**
     * @return Resource location
     * 
     */
    public String location() {
        return this.location;
    }
    /**
     * @return Resource name
     * 
     */
    public String name() {
        return this.name;
    }
    /**
     * @return Specifies the network interfaces of the virtual machine.
     * 
     */
    public Optional networkProfile() {
        return Optional.ofNullable(this.networkProfile);
    }
    /**
     * @return Specifies the operating system settings used while creating the virtual machine. Some of the settings cannot be changed once VM is provisioned.
     * 
     */
    public Optional osProfile() {
        return Optional.ofNullable(this.osProfile);
    }
    /**
     * @return Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use.  In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started ->**. Enter any required information and then click **Save**.
     * 
     */
    public Optional plan() {
        return Optional.ofNullable(this.plan);
    }
    /**
     * @return Specifies the scale set logical fault domain into which the Virtual Machine will be created. By default, the Virtual Machine will by automatically assigned to a fault domain that best maintains balance across available fault domains. This is applicable only if the 'virtualMachineScaleSet' property of this Virtual Machine is set. The Virtual Machine Scale Set that is referenced, must have 'platformFaultDomainCount' greater than 1. This property cannot be updated once the Virtual Machine is created. Fault domain assignment can be viewed in the Virtual Machine Instance View. Minimum api‐version: 2020‐12‐01.
     * 
     */
    public Optional platformFaultDomain() {
        return Optional.ofNullable(this.platformFaultDomain);
    }
    /**
     * @return Specifies the priority for the virtual machine. Minimum api-version: 2019-03-01
     * 
     */
    public Optional priority() {
        return Optional.ofNullable(this.priority);
    }
    /**
     * @return The provisioning state, which only appears in the response.
     * 
     */
    public String provisioningState() {
        return this.provisioningState;
    }
    /**
     * @return Specifies information about the proximity placement group that the virtual machine should be assigned to. Minimum api-version: 2018-04-01.
     * 
     */
    public Optional proximityPlacementGroup() {
        return Optional.ofNullable(this.proximityPlacementGroup);
    }
    /**
     * @return The virtual machine child extension resources.
     * 
     */
    public List resources() {
        return this.resources;
    }
    /**
     * @return Specifies Scheduled Event related configurations.
     * 
     */
    public Optional scheduledEventsProfile() {
        return Optional.ofNullable(this.scheduledEventsProfile);
    }
    /**
     * @return Specifies the Security related profile settings for the virtual machine.
     * 
     */
    public Optional securityProfile() {
        return Optional.ofNullable(this.securityProfile);
    }
    /**
     * @return Specifies the storage settings for the virtual machine disks.
     * 
     */
    public Optional storageProfile() {
        return Optional.ofNullable(this.storageProfile);
    }
    /**
     * @return Resource tags
     * 
     */
    public Map tags() {
        return this.tags == null ? Map.of() : this.tags;
    }
    /**
     * @return Specifies the time at which the Virtual Machine resource was created. Minimum api-version: 2021-11-01.
     * 
     */
    public String timeCreated() {
        return this.timeCreated;
    }
    /**
     * @return Resource type
     * 
     */
    public String type() {
        return this.type;
    }
    /**
     * @return UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01.
     * 
     */
    public Optional userData() {
        return Optional.ofNullable(this.userData);
    }
    /**
     * @return Specifies information about the virtual machine scale set that the virtual machine should be assigned to. Virtual machines specified in the same virtual machine scale set are allocated to different nodes to maximize availability. Currently, a VM can only be added to virtual machine scale set at creation time. An existing VM cannot be added to a virtual machine scale set. This property cannot exist along with a non-null properties.availabilitySet reference. Minimum api‐version: 2019‐03‐01.
     * 
     */
    public Optional virtualMachineScaleSet() {
        return Optional.ofNullable(this.virtualMachineScaleSet);
    }
    /**
     * @return Specifies the VM unique ID which is a 128-bits identifier that is encoded and stored in all Azure IaaS VMs SMBIOS and can be read using platform BIOS commands.
     * 
     */
    public String vmId() {
        return this.vmId;
    }
    /**
     * @return The virtual machine zones.
     * 
     */
    public List zones() {
        return this.zones == null ? List.of() : this.zones;
    }

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

    public static Builder builder(GetVirtualMachineResult defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private @Nullable AdditionalCapabilitiesResponse additionalCapabilities;
        private @Nullable ApplicationProfileResponse applicationProfile;
        private @Nullable SubResourceResponse availabilitySet;
        private @Nullable BillingProfileResponse billingProfile;
        private @Nullable CapacityReservationProfileResponse capacityReservation;
        private @Nullable DiagnosticsProfileResponse diagnosticsProfile;
        private @Nullable String evictionPolicy;
        private @Nullable ExtendedLocationResponse extendedLocation;
        private @Nullable String extensionsTimeBudget;
        private @Nullable HardwareProfileResponse hardwareProfile;
        private @Nullable SubResourceResponse host;
        private @Nullable SubResourceResponse hostGroup;
        private String id;
        private @Nullable VirtualMachineIdentityResponse identity;
        private VirtualMachineInstanceViewResponse instanceView;
        private @Nullable String licenseType;
        private String location;
        private String name;
        private @Nullable NetworkProfileResponse networkProfile;
        private @Nullable OSProfileResponse osProfile;
        private @Nullable PlanResponse plan;
        private @Nullable Integer platformFaultDomain;
        private @Nullable String priority;
        private String provisioningState;
        private @Nullable SubResourceResponse proximityPlacementGroup;
        private List resources;
        private @Nullable ScheduledEventsProfileResponse scheduledEventsProfile;
        private @Nullable SecurityProfileResponse securityProfile;
        private @Nullable StorageProfileResponse storageProfile;
        private @Nullable Map tags;
        private String timeCreated;
        private String type;
        private @Nullable String userData;
        private @Nullable SubResourceResponse virtualMachineScaleSet;
        private String vmId;
        private @Nullable List zones;
        public Builder() {}
        public Builder(GetVirtualMachineResult defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.additionalCapabilities = defaults.additionalCapabilities;
    	      this.applicationProfile = defaults.applicationProfile;
    	      this.availabilitySet = defaults.availabilitySet;
    	      this.billingProfile = defaults.billingProfile;
    	      this.capacityReservation = defaults.capacityReservation;
    	      this.diagnosticsProfile = defaults.diagnosticsProfile;
    	      this.evictionPolicy = defaults.evictionPolicy;
    	      this.extendedLocation = defaults.extendedLocation;
    	      this.extensionsTimeBudget = defaults.extensionsTimeBudget;
    	      this.hardwareProfile = defaults.hardwareProfile;
    	      this.host = defaults.host;
    	      this.hostGroup = defaults.hostGroup;
    	      this.id = defaults.id;
    	      this.identity = defaults.identity;
    	      this.instanceView = defaults.instanceView;
    	      this.licenseType = defaults.licenseType;
    	      this.location = defaults.location;
    	      this.name = defaults.name;
    	      this.networkProfile = defaults.networkProfile;
    	      this.osProfile = defaults.osProfile;
    	      this.plan = defaults.plan;
    	      this.platformFaultDomain = defaults.platformFaultDomain;
    	      this.priority = defaults.priority;
    	      this.provisioningState = defaults.provisioningState;
    	      this.proximityPlacementGroup = defaults.proximityPlacementGroup;
    	      this.resources = defaults.resources;
    	      this.scheduledEventsProfile = defaults.scheduledEventsProfile;
    	      this.securityProfile = defaults.securityProfile;
    	      this.storageProfile = defaults.storageProfile;
    	      this.tags = defaults.tags;
    	      this.timeCreated = defaults.timeCreated;
    	      this.type = defaults.type;
    	      this.userData = defaults.userData;
    	      this.virtualMachineScaleSet = defaults.virtualMachineScaleSet;
    	      this.vmId = defaults.vmId;
    	      this.zones = defaults.zones;
        }

        @CustomType.Setter
        public Builder additionalCapabilities(@Nullable AdditionalCapabilitiesResponse additionalCapabilities) {

            this.additionalCapabilities = additionalCapabilities;
            return this;
        }
        @CustomType.Setter
        public Builder applicationProfile(@Nullable ApplicationProfileResponse applicationProfile) {

            this.applicationProfile = applicationProfile;
            return this;
        }
        @CustomType.Setter
        public Builder availabilitySet(@Nullable SubResourceResponse availabilitySet) {

            this.availabilitySet = availabilitySet;
            return this;
        }
        @CustomType.Setter
        public Builder billingProfile(@Nullable BillingProfileResponse billingProfile) {

            this.billingProfile = billingProfile;
            return this;
        }
        @CustomType.Setter
        public Builder capacityReservation(@Nullable CapacityReservationProfileResponse capacityReservation) {

            this.capacityReservation = capacityReservation;
            return this;
        }
        @CustomType.Setter
        public Builder diagnosticsProfile(@Nullable DiagnosticsProfileResponse diagnosticsProfile) {

            this.diagnosticsProfile = diagnosticsProfile;
            return this;
        }
        @CustomType.Setter
        public Builder evictionPolicy(@Nullable String evictionPolicy) {

            this.evictionPolicy = evictionPolicy;
            return this;
        }
        @CustomType.Setter
        public Builder extendedLocation(@Nullable ExtendedLocationResponse extendedLocation) {

            this.extendedLocation = extendedLocation;
            return this;
        }
        @CustomType.Setter
        public Builder extensionsTimeBudget(@Nullable String extensionsTimeBudget) {

            this.extensionsTimeBudget = extensionsTimeBudget;
            return this;
        }
        @CustomType.Setter
        public Builder hardwareProfile(@Nullable HardwareProfileResponse hardwareProfile) {

            this.hardwareProfile = hardwareProfile;
            return this;
        }
        @CustomType.Setter
        public Builder host(@Nullable SubResourceResponse host) {

            this.host = host;
            return this;
        }
        @CustomType.Setter
        public Builder hostGroup(@Nullable SubResourceResponse hostGroup) {

            this.hostGroup = hostGroup;
            return this;
        }
        @CustomType.Setter
        public Builder id(String id) {
            if (id == null) {
              throw new MissingRequiredPropertyException("GetVirtualMachineResult", "id");
            }
            this.id = id;
            return this;
        }
        @CustomType.Setter
        public Builder identity(@Nullable VirtualMachineIdentityResponse identity) {

            this.identity = identity;
            return this;
        }
        @CustomType.Setter
        public Builder instanceView(VirtualMachineInstanceViewResponse instanceView) {
            if (instanceView == null) {
              throw new MissingRequiredPropertyException("GetVirtualMachineResult", "instanceView");
            }
            this.instanceView = instanceView;
            return this;
        }
        @CustomType.Setter
        public Builder licenseType(@Nullable String licenseType) {

            this.licenseType = licenseType;
            return this;
        }
        @CustomType.Setter
        public Builder location(String location) {
            if (location == null) {
              throw new MissingRequiredPropertyException("GetVirtualMachineResult", "location");
            }
            this.location = location;
            return this;
        }
        @CustomType.Setter
        public Builder name(String name) {
            if (name == null) {
              throw new MissingRequiredPropertyException("GetVirtualMachineResult", "name");
            }
            this.name = name;
            return this;
        }
        @CustomType.Setter
        public Builder networkProfile(@Nullable NetworkProfileResponse networkProfile) {

            this.networkProfile = networkProfile;
            return this;
        }
        @CustomType.Setter
        public Builder osProfile(@Nullable OSProfileResponse osProfile) {

            this.osProfile = osProfile;
            return this;
        }
        @CustomType.Setter
        public Builder plan(@Nullable PlanResponse plan) {

            this.plan = plan;
            return this;
        }
        @CustomType.Setter
        public Builder platformFaultDomain(@Nullable Integer platformFaultDomain) {

            this.platformFaultDomain = platformFaultDomain;
            return this;
        }
        @CustomType.Setter
        public Builder priority(@Nullable String priority) {

            this.priority = priority;
            return this;
        }
        @CustomType.Setter
        public Builder provisioningState(String provisioningState) {
            if (provisioningState == null) {
              throw new MissingRequiredPropertyException("GetVirtualMachineResult", "provisioningState");
            }
            this.provisioningState = provisioningState;
            return this;
        }
        @CustomType.Setter
        public Builder proximityPlacementGroup(@Nullable SubResourceResponse proximityPlacementGroup) {

            this.proximityPlacementGroup = proximityPlacementGroup;
            return this;
        }
        @CustomType.Setter
        public Builder resources(List resources) {
            if (resources == null) {
              throw new MissingRequiredPropertyException("GetVirtualMachineResult", "resources");
            }
            this.resources = resources;
            return this;
        }
        public Builder resources(VirtualMachineExtensionResponse... resources) {
            return resources(List.of(resources));
        }
        @CustomType.Setter
        public Builder scheduledEventsProfile(@Nullable ScheduledEventsProfileResponse scheduledEventsProfile) {

            this.scheduledEventsProfile = scheduledEventsProfile;
            return this;
        }
        @CustomType.Setter
        public Builder securityProfile(@Nullable SecurityProfileResponse securityProfile) {

            this.securityProfile = securityProfile;
            return this;
        }
        @CustomType.Setter
        public Builder storageProfile(@Nullable StorageProfileResponse storageProfile) {

            this.storageProfile = storageProfile;
            return this;
        }
        @CustomType.Setter
        public Builder tags(@Nullable Map tags) {

            this.tags = tags;
            return this;
        }
        @CustomType.Setter
        public Builder timeCreated(String timeCreated) {
            if (timeCreated == null) {
              throw new MissingRequiredPropertyException("GetVirtualMachineResult", "timeCreated");
            }
            this.timeCreated = timeCreated;
            return this;
        }
        @CustomType.Setter
        public Builder type(String type) {
            if (type == null) {
              throw new MissingRequiredPropertyException("GetVirtualMachineResult", "type");
            }
            this.type = type;
            return this;
        }
        @CustomType.Setter
        public Builder userData(@Nullable String userData) {

            this.userData = userData;
            return this;
        }
        @CustomType.Setter
        public Builder virtualMachineScaleSet(@Nullable SubResourceResponse virtualMachineScaleSet) {

            this.virtualMachineScaleSet = virtualMachineScaleSet;
            return this;
        }
        @CustomType.Setter
        public Builder vmId(String vmId) {
            if (vmId == null) {
              throw new MissingRequiredPropertyException("GetVirtualMachineResult", "vmId");
            }
            this.vmId = vmId;
            return this;
        }
        @CustomType.Setter
        public Builder zones(@Nullable List zones) {

            this.zones = zones;
            return this;
        }
        public Builder zones(String... zones) {
            return zones(List.of(zones));
        }
        public GetVirtualMachineResult build() {
            final var _resultValue = new GetVirtualMachineResult();
            _resultValue.additionalCapabilities = additionalCapabilities;
            _resultValue.applicationProfile = applicationProfile;
            _resultValue.availabilitySet = availabilitySet;
            _resultValue.billingProfile = billingProfile;
            _resultValue.capacityReservation = capacityReservation;
            _resultValue.diagnosticsProfile = diagnosticsProfile;
            _resultValue.evictionPolicy = evictionPolicy;
            _resultValue.extendedLocation = extendedLocation;
            _resultValue.extensionsTimeBudget = extensionsTimeBudget;
            _resultValue.hardwareProfile = hardwareProfile;
            _resultValue.host = host;
            _resultValue.hostGroup = hostGroup;
            _resultValue.id = id;
            _resultValue.identity = identity;
            _resultValue.instanceView = instanceView;
            _resultValue.licenseType = licenseType;
            _resultValue.location = location;
            _resultValue.name = name;
            _resultValue.networkProfile = networkProfile;
            _resultValue.osProfile = osProfile;
            _resultValue.plan = plan;
            _resultValue.platformFaultDomain = platformFaultDomain;
            _resultValue.priority = priority;
            _resultValue.provisioningState = provisioningState;
            _resultValue.proximityPlacementGroup = proximityPlacementGroup;
            _resultValue.resources = resources;
            _resultValue.scheduledEventsProfile = scheduledEventsProfile;
            _resultValue.securityProfile = securityProfile;
            _resultValue.storageProfile = storageProfile;
            _resultValue.tags = tags;
            _resultValue.timeCreated = timeCreated;
            _resultValue.type = type;
            _resultValue.userData = userData;
            _resultValue.virtualMachineScaleSet = virtualMachineScaleSet;
            _resultValue.vmId = vmId;
            _resultValue.zones = zones;
            return _resultValue;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy