/**
* 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 org.joda.time.DateTime;
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.Resource;
/**
* Snapshot resource.
*/
@JsonFlatten
public class SnapshotInner extends Resource {
/**
* the storage account type of the disk. Possible values include:
* 'Standard_LRS', 'Premium_LRS'.
*/
@JsonProperty(value = "properties.accountType")
private StorageAccountTypes accountType;
/**
* The time when the disk was created.
*/
@JsonProperty(value = "properties.timeCreated", access = JsonProperty.Access.WRITE_ONLY)
private DateTime timeCreated;
/**
* 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", required = true)
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;
/**
* A relative URI containing the VM id that has the disk attached.
*/
@JsonProperty(value = "properties.ownerId", access = JsonProperty.Access.WRITE_ONLY)
private String ownerId;
/**
* The disk provisioning state.
*/
@JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
private String provisioningState;
/**
* 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 SnapshotInner object itself.
*/
public SnapshotInner withAccountType(StorageAccountTypes accountType) {
this.accountType = accountType;
return this;
}
/**
* Get the timeCreated value.
*
* @return the timeCreated value
*/
public DateTime timeCreated() {
return this.timeCreated;
}
/**
* 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 SnapshotInner object itself.
*/
public SnapshotInner 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 SnapshotInner object itself.
*/
public SnapshotInner 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 SnapshotInner object itself.
*/
public SnapshotInner 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 SnapshotInner object itself.
*/
public SnapshotInner withEncryptionSettings(EncryptionSettings encryptionSettings) {
this.encryptionSettings = encryptionSettings;
return this;
}
/**
* Get the ownerId value.
*
* @return the ownerId value
*/
public String ownerId() {
return this.ownerId;
}
/**
* Get the provisioningState value.
*
* @return the provisioningState value
*/
public String provisioningState() {
return this.provisioningState;
}
}