/**
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for
* license information.
*
* Code generated by Microsoft (R) AutoRest Code Generator.
*/
package com.microsoft.azure.management.compute.implementation;
import com.microsoft.azure.management.compute.Sku;
import com.microsoft.azure.management.compute.Plan;
import com.microsoft.azure.management.compute.UpgradePolicy;
import com.microsoft.azure.management.compute.VirtualMachineScaleSetVMProfile;
import com.microsoft.azure.management.compute.VirtualMachineScaleSetIdentity;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.microsoft.rest.serializer.JsonFlatten;
import com.microsoft.azure.Resource;
/**
* Describes a Virtual Machine Scale Set.
*/
@JsonFlatten
public class VirtualMachineScaleSetInner extends Resource {
/**
* The virtual machine scale set sku.
*/
@JsonProperty(value = "sku")
private Sku sku;
/**
* The purchase plan when deploying a virtual machine scale set from VM
* Marketplace images.
*/
@JsonProperty(value = "plan")
private Plan plan;
/**
* The upgrade policy.
*/
@JsonProperty(value = "properties.upgradePolicy")
private UpgradePolicy upgradePolicy;
/**
* The virtual machine profile.
*/
@JsonProperty(value = "properties.virtualMachineProfile")
private VirtualMachineScaleSetVMProfile virtualMachineProfile;
/**
* The provisioning state, which only appears in the response.
*/
@JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
private String provisioningState;
/**
* Specifies whether the Virtual Machine Scale Set should be
* overprovisioned.
*/
@JsonProperty(value = "properties.overprovision")
private Boolean overprovision;
/**
* When true this limits the scale set to a single placement group, of max
* size 100 virtual machines.
*/
@JsonProperty(value = "properties.singlePlacementGroup")
private Boolean singlePlacementGroup;
/**
* The identity of the virtual machine scale set, if configured.
*/
@JsonProperty(value = "identity")
private VirtualMachineScaleSetIdentity identity;
/**
* Get the sku value.
*
* @return the sku value
*/
public Sku sku() {
return this.sku;
}
/**
* Set the sku value.
*
* @param sku the sku value to set
* @return the VirtualMachineScaleSetInner object itself.
*/
public VirtualMachineScaleSetInner withSku(Sku sku) {
this.sku = sku;
return this;
}
/**
* Get the plan value.
*
* @return the plan value
*/
public Plan plan() {
return this.plan;
}
/**
* Set the plan value.
*
* @param plan the plan value to set
* @return the VirtualMachineScaleSetInner object itself.
*/
public VirtualMachineScaleSetInner withPlan(Plan plan) {
this.plan = plan;
return this;
}
/**
* Get the upgradePolicy value.
*
* @return the upgradePolicy value
*/
public UpgradePolicy upgradePolicy() {
return this.upgradePolicy;
}
/**
* Set the upgradePolicy value.
*
* @param upgradePolicy the upgradePolicy value to set
* @return the VirtualMachineScaleSetInner object itself.
*/
public VirtualMachineScaleSetInner withUpgradePolicy(UpgradePolicy upgradePolicy) {
this.upgradePolicy = upgradePolicy;
return this;
}
/**
* Get the virtualMachineProfile value.
*
* @return the virtualMachineProfile value
*/
public VirtualMachineScaleSetVMProfile virtualMachineProfile() {
return this.virtualMachineProfile;
}
/**
* Set the virtualMachineProfile value.
*
* @param virtualMachineProfile the virtualMachineProfile value to set
* @return the VirtualMachineScaleSetInner object itself.
*/
public VirtualMachineScaleSetInner withVirtualMachineProfile(VirtualMachineScaleSetVMProfile virtualMachineProfile) {
this.virtualMachineProfile = virtualMachineProfile;
return this;
}
/**
* Get the provisioningState value.
*
* @return the provisioningState value
*/
public String provisioningState() {
return this.provisioningState;
}
/**
* Get the overprovision value.
*
* @return the overprovision value
*/
public Boolean overprovision() {
return this.overprovision;
}
/**
* Set the overprovision value.
*
* @param overprovision the overprovision value to set
* @return the VirtualMachineScaleSetInner object itself.
*/
public VirtualMachineScaleSetInner withOverprovision(Boolean overprovision) {
this.overprovision = overprovision;
return this;
}
/**
* Get the singlePlacementGroup value.
*
* @return the singlePlacementGroup value
*/
public Boolean singlePlacementGroup() {
return this.singlePlacementGroup;
}
/**
* Set the singlePlacementGroup value.
*
* @param singlePlacementGroup the singlePlacementGroup value to set
* @return the VirtualMachineScaleSetInner object itself.
*/
public VirtualMachineScaleSetInner withSinglePlacementGroup(Boolean singlePlacementGroup) {
this.singlePlacementGroup = singlePlacementGroup;
return this;
}
/**
* Get the identity value.
*
* @return the identity value
*/
public VirtualMachineScaleSetIdentity identity() {
return this.identity;
}
/**
* Set the identity value.
*
* @param identity the identity value to set
* @return the VirtualMachineScaleSetInner object itself.
*/
public VirtualMachineScaleSetInner withIdentity(VirtualMachineScaleSetIdentity identity) {
this.identity = identity;
return this;
}
}