com.azure.resourcemanager.compute.models.VirtualMachineScaleSetUnmanagedDataDisk Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of azure-resourcemanager-compute Show documentation
Show all versions of azure-resourcemanager-compute Show documentation
This package contains Microsoft Azure Compute Management SDK. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
package com.azure.resourcemanager.compute.models;
import com.azure.core.annotation.Fluent;
import com.azure.resourcemanager.resources.fluentcore.arm.models.ChildResource;
import com.azure.resourcemanager.resources.fluentcore.model.Attachable;
import com.azure.resourcemanager.resources.fluentcore.model.HasInnerModel;
import com.azure.resourcemanager.resources.fluentcore.model.Settable;
/** Describes definition and update stages of unmanaged data disk of a scale set. */
@Fluent
public interface VirtualMachineScaleSetUnmanagedDataDisk
extends HasInnerModel, ChildResource {
/** Grouping of unmanaged data disk definition stages applicable as part of a virtual machine scale set creation. */
interface DefinitionStages {
/**
* The first stage of a unmanaged data disk definition.
*
* @param the stage of the parent definition to return to after attaching this definition
*/
interface Blank extends WithDiskSource {
}
/**
* The stage of the unmanaged data disk definition allowing to choose the source.
*
* @param the stage of the parent definition to return to after attaching this definition
*/
interface WithDiskSource {
/**
* specifies that unmanaged disk needs to be created with a new VHD of given size.
*
* @param sizeInGB the initial disk size in GB
* @return the next stage of unmanaged data disk definition
*/
WithNewVhdDiskSettings withNewVhd(int sizeInGB);
/**
* Specifies the image LUN identifier of the source disk image.
*
* @param imageLun the LUN
* @return the next stage of unmanaged data disk definition
*/
WithFromImageDiskSettings fromImage(int imageLun);
}
/**
* The stage that allows configure the unmanaged disk based on new VHD.
*
* @param the stage of the parent definition to return to after attaching this definition
*/
interface WithNewVhdDiskSettings extends WithAttach {
/**
* Specifies the logical unit number for the unmanaged data disk.
*
* @param lun the logical unit number
* @return the next stage of unmanaged data disk definition
*/
WithNewVhdDiskSettings withLun(Integer lun);
/**
* Specifies the caching type for the unmanaged data disk.
*
* @param cachingType the disk caching type. Possible values include: 'None', 'ReadOnly', 'ReadWrite'
* @return the next stage of unmanaged data disk definition
*/
WithNewVhdDiskSettings withCaching(CachingTypes cachingType);
}
/**
* The stage that allows configure the unmanaged disk based on an image.
*
* @param the stage of the parent definition to return to after attaching this definition
*/
interface WithFromImageDiskSettings extends WithAttach {
/**
* Specifies the size in GB the unmanaged disk needs to be resized.
*
* @param sizeInGB the disk size in GB
* @return the next stage of unmanaged data disk definition
*/
WithFromImageDiskSettings withSizeInGB(Integer sizeInGB);
/**
* Specifies the caching type for the unmanaged data disk.
*
* @param cachingType the disk caching type. Possible values include: 'None', 'ReadOnly', 'ReadWrite'
* @return the next stage of unmanaged data disk definition
*/
WithFromImageDiskSettings withCaching(CachingTypes cachingType);
}
/**
* The final stage of the unmanaged data disk definition.
*
* @param the stage of the parent definition to return to after attaching this definition
*/
interface WithAttach extends Attachable.InDefinition {
}
}
/**
* The entirety of a unmanaged data disk of a virtual machine scale set definition.
*
* @param the stage of the parent definition to return to after attaching this definition
*/
interface DefinitionWithNewVhd
extends DefinitionStages.Blank,
DefinitionStages.WithDiskSource,
DefinitionStages.WithNewVhdDiskSettings,
DefinitionStages.WithAttach {
}
/**
* The entirety of a unmanaged data disk of a virtual machine scale set definition.
*
* @param the stage of the parent definition to return to after attaching this definition
*/
interface DefinitionWithImage
extends DefinitionStages.Blank,
DefinitionStages.WithDiskSource,
DefinitionStages.WithFromImageDiskSettings,
DefinitionStages.WithAttach {
}
/** Grouping of unamanged data disk definition stages applicable as part of a virtual machine scale set update. */
interface UpdateDefinitionStages {
/**
* The first stage of a unmanaged data disk definition.
*
* @param the stage of the parent update to return to after attaching this definition
*/
interface Blank extends WithDiskSource {
}
/**
* The stage of the unmanaged data disk definition allowing to choose the source.
*
* @param the stage of the parent update to return to after attaching this definition
*/
interface WithDiskSource {
/**
* specifies that unmanaged disk needs to be created with a new VHD of given size.
*
* @param sizeInGB the initial disk size in GB
* @return the next stage of unmanaged data disk definition
*/
WithNewVhdDiskSettings withNewVhd(int sizeInGB);
}
/**
* The stage that allows configure the unmanaged disk based on new VHD.
*
* @param the stage of the parent update to return to after attaching this definition
*/
interface WithNewVhdDiskSettings extends WithAttach {
/**
* Specifies the logical unit number for the unmanaged data disk.
*
* @param lun the logical unit number
* @return the next stage of unmanaged data disk definition
*/
WithNewVhdDiskSettings withLun(Integer lun);
/**
* Specifies the caching type for the unmanaged data disk.
*
* @param cachingType the disk caching type. Possible values include: 'None', 'ReadOnly', 'ReadWrite'
* @return the next stage of unmanaged data disk definition
*/
WithNewVhdDiskSettings withCaching(CachingTypes cachingType);
}
/**
* The final stage of the unmanaged data disk definition.
*
* @param the stage of the parent update to return to after attaching this definition
*/
interface WithAttach extends Attachable.InUpdate {
}
}
/**
* The entirety of a unmanaged data disk of a virtual machine scale set definition.
*
* @param the stage of the parent update to return to after attaching this definition
*/
interface UpdateDefinition
extends UpdateDefinitionStages.Blank,
UpdateDefinitionStages.WithDiskSource,
UpdateDefinitionStages.WithNewVhdDiskSettings,
UpdateDefinitionStages.WithAttach {
}
/** Grouping of unmanaged data disk update stages. */
interface UpdateStages {
/** The stage of the unmanaged data disk update allowing to set the disk size. */
interface WithDiskSize {
/**
* Specifies the new size in GB for data disk.
*
* @param sizeInGB the disk size in GB
* @return the next stage of unmanaged data disk update
*/
Update withSizeInGB(Integer sizeInGB);
}
/** The stage of the unmanaged data disk update allowing to set the disk LUN. */
interface WithDiskLun {
/**
* Specifies the new logical unit number for the unmanaged data disk.
*
* @param lun the logical unit number
* @return the next stage of unmanaged data disk update
*/
Update withLun(Integer lun);
}
/** The stage of the unmanaged data disk update allowing to set the disk caching type. */
interface WithDiskCaching {
/**
* Specifies the new caching type for the unmanaged data disk.
*
* @param cachingType the disk caching type. Possible values include: 'None', 'ReadOnly', 'ReadWrite'
* @return the next stage of unmanaged data disk update
*/
Update withCaching(CachingTypes cachingType);
}
}
/** The entirety of a unmanaged data disk update as part of a virtual machine scale set update. */
interface Update
extends UpdateStages.WithDiskSize,
UpdateStages.WithDiskLun,
UpdateStages.WithDiskCaching,
Settable {
}
}