/**
* 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;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
* Describes a virtual machine scale set operating system disk.
*/
public class VirtualMachineScaleSetOSDisk {
/**
* The disk name.
*/
@JsonProperty(value = "name")
private String name;
/**
* The caching type. Possible values include: 'None', 'ReadOnly',
* 'ReadWrite'.
*/
@JsonProperty(value = "caching")
private CachingTypes caching;
/**
* The create option. Possible values include: 'fromImage', 'empty',
* 'attach'.
*/
@JsonProperty(value = "createOption", required = true)
private DiskCreateOptionTypes createOption;
/**
* The Operating System type. Possible values include: 'Windows', 'Linux'.
*/
@JsonProperty(value = "osType")
private OperatingSystemTypes osType;
/**
* The Source User Image VirtualHardDisk. This VirtualHardDisk will be
* copied before using it to attach to the Virtual Machine. If SourceImage
* is provided, the destination VirtualHardDisk should not exist.
*/
@JsonProperty(value = "image")
private VirtualHardDisk image;
/**
* The list of virtual hard disk container uris.
*/
@JsonProperty(value = "vhdContainers")
private List<String> vhdContainers;
/**
* The managed disk parameters.
*/
@JsonProperty(value = "managedDisk")
private VirtualMachineScaleSetManagedDiskParameters managedDisk;
/**
* Get the name value.
*
* @return the name value
*/
public String name() {
return this.name;
}
/**
* Set the name value.
*
* @param name the name value to set
* @return the VirtualMachineScaleSetOSDisk object itself.
*/
public VirtualMachineScaleSetOSDisk withName(String name) {
this.name = name;
return this;
}
/**
* Get the caching value.
*
* @return the caching value
*/
public CachingTypes caching() {
return this.caching;
}
/**
* Set the caching value.
*
* @param caching the caching value to set
* @return the VirtualMachineScaleSetOSDisk object itself.
*/
public VirtualMachineScaleSetOSDisk withCaching(CachingTypes caching) {
this.caching = caching;
return this;
}
/**
* Get the createOption value.
*
* @return the createOption value
*/
public DiskCreateOptionTypes createOption() {
return this.createOption;
}
/**
* Set the createOption value.
*
* @param createOption the createOption value to set
* @return the VirtualMachineScaleSetOSDisk object itself.
*/
public VirtualMachineScaleSetOSDisk withCreateOption(DiskCreateOptionTypes createOption) {
this.createOption = createOption;
return this;
}
/**
* Get the osType value.
*
* @return the osType value
*/
public OperatingSystemTypes osType() {
return this.osType;
}
/**
* Set the osType value.
*
* @param osType the osType value to set
* @return the VirtualMachineScaleSetOSDisk object itself.
*/
public VirtualMachineScaleSetOSDisk withOsType(OperatingSystemTypes osType) {
this.osType = osType;
return this;
}
/**
* Get the image value.
*
* @return the image value
*/
public VirtualHardDisk image() {
return this.image;
}
/**
* Set the image value.
*
* @param image the image value to set
* @return the VirtualMachineScaleSetOSDisk object itself.
*/
public VirtualMachineScaleSetOSDisk withImage(VirtualHardDisk image) {
this.image = image;
return this;
}
/**
* Get the vhdContainers value.
*
* @return the vhdContainers value
*/
public List<String> vhdContainers() {
return this.vhdContainers;
}
/**
* Set the vhdContainers value.
*
* @param vhdContainers the vhdContainers value to set
* @return the VirtualMachineScaleSetOSDisk object itself.
*/
public VirtualMachineScaleSetOSDisk withVhdContainers(List<String> vhdContainers) {
this.vhdContainers = vhdContainers;
return this;
}
/**
* Get the managedDisk value.
*
* @return the managedDisk value
*/
public VirtualMachineScaleSetManagedDiskParameters managedDisk() {
return this.managedDisk;
}
/**
* Set the managedDisk value.
*
* @param managedDisk the managedDisk value to set
* @return the VirtualMachineScaleSetOSDisk object itself.
*/
public VirtualMachineScaleSetOSDisk withManagedDisk(VirtualMachineScaleSetManagedDiskParameters managedDisk) {
this.managedDisk = managedDisk;
return this;
}
}