/**
* 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.StorageAccountTypes;
import com.microsoft.azure.management.compute.OperatingSystemTypes;
import com.microsoft.azure.management.compute.CreationData;
import com.microsoft.azure.management.compute.EncryptionSettings;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.microsoft.rest.serializer.JsonFlatten;
import com.microsoft.azure.management.compute.ResourceUpdate;
/**
* Snapshot update resource.
*/
@JsonFlatten
public class SnapshotUpdateInner extends ResourceUpdate {
/**
* the storage account type of the disk. Possible values include:
* 'Standard_LRS', 'Premium_LRS'.
*/
@JsonProperty(value = "properties.accountType")
private StorageAccountTypes accountType;
/**
* the Operating System type. Possible values include: 'Windows', 'Linux'.
*/
@JsonProperty(value = "properties.osType")
private OperatingSystemTypes osType;
/**
* disk source information. CreationData information cannot be changed
* after the disk has been created.
*/
@JsonProperty(value = "properties.creationData")
private CreationData creationData;
/**
* If creationData.createOption is Empty, this field is mandatory and it
* indicates the size of the VHD to create. If this field is present for
* updates or creation with other options, it indicates a resize. Resizes
* are only allowed if the disk is not attached to a running VM, and can
* only increase the disk's size.
*/
@JsonProperty(value = "properties.diskSizeGB")
private Integer diskSizeGB;
/**
* Encryption settings for disk or snapshot.
*/
@JsonProperty(value = "properties.encryptionSettings")
private EncryptionSettings encryptionSettings;
/**
* Get the accountType value.
*
* @return the accountType value
*/
public StorageAccountTypes accountType() {
return this.accountType;
}
/**
* Set the accountType value.
*
* @param accountType the accountType value to set
* @return the SnapshotUpdateInner object itself.
*/
public SnapshotUpdateInner withAccountType(StorageAccountTypes accountType) {
this.accountType = accountType;
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 SnapshotUpdateInner object itself.
*/
public SnapshotUpdateInner withOsType(OperatingSystemTypes osType) {
this.osType = osType;
return this;
}
/**
* Get the creationData value.
*
* @return the creationData value
*/
public CreationData creationData() {
return this.creationData;
}
/**
* Set the creationData value.
*
* @param creationData the creationData value to set
* @return the SnapshotUpdateInner object itself.
*/
public SnapshotUpdateInner withCreationData(CreationData creationData) {
this.creationData = creationData;
return this;
}
/**
* Get the diskSizeGB value.
*
* @return the diskSizeGB value
*/
public Integer diskSizeGB() {
return this.diskSizeGB;
}
/**
* Set the diskSizeGB value.
*
* @param diskSizeGB the diskSizeGB value to set
* @return the SnapshotUpdateInner object itself.
*/
public SnapshotUpdateInner withDiskSizeGB(Integer diskSizeGB) {
this.diskSizeGB = diskSizeGB;
return this;
}
/**
* Get the encryptionSettings value.
*
* @return the encryptionSettings value
*/
public EncryptionSettings encryptionSettings() {
return this.encryptionSettings;
}
/**
* Set the encryptionSettings value.
*
* @param encryptionSettings the encryptionSettings value to set
* @return the SnapshotUpdateInner object itself.
*/
public SnapshotUpdateInner withEncryptionSettings(EncryptionSettings encryptionSettings) {
this.encryptionSettings = encryptionSettings;
return this;
}
}