@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api ComputeManagementClient
@base https://management.azure.com
@version 2019-03-01
@auth OAuth2
@common_fields {api-version: any # Client Api Version., subscriptionId: any # Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.}
@endpoints 109
@hint download_for_search
@toc providers(1), subscriptions(108)

@group providers
@endpoint GET /providers/Microsoft.Compute/operations
@desc Gets a list of compute operations.
@returns(200) OK

@endgroup

@group subscriptions
@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/availabilitySets
@desc Lists all availability sets in a subscription.
@optional {$expand: any # The expand expression to apply to the operation.}
@returns(200) OK

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/hostGroups
@desc Lists all of the dedicated host groups in the subscription. Use the nextLink property in the response to get the next page of dedicated host groups.
@returns(200) OK

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/images
@desc Gets the list of Images in the subscription. Use nextLink property in the response to get the next page of Images. Do this till nextLink is null to fetch all the Images.
@returns(200) OK

@endpoint POST /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/logAnalytics/apiAccess/getRequestRateByInterval
@desc Export logs that show Api requests made by this subscription in the given time window to show throttling activities.
@required {parameters: any # Parameters supplied to the LogAnalytics getRequestRateByInterval Api., location: any # The location upon which virtual-machine-sizes is queried.}
@returns(200) OK
@returns(202) Accepted

@endpoint POST /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/logAnalytics/apiAccess/getThrottledRequests
@desc Export logs that show total throttled Api requests for this subscription in the given time window.
@required {parameters: any # Parameters supplied to the LogAnalytics getThrottledRequests Api., location: any # The location upon which virtual-machine-sizes is queried.}
@returns(200) OK
@returns(202) Accepted

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers
@desc Gets a list of virtual machine image publishers for the specified Azure location.
@required {location: any # The name of a supported Azure region.}
@returns(200) OK

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmextension/types
@desc Gets a list of virtual machine extension image types.
@required {location: any # The name of a supported Azure region., publisherName: any}
@returns(200) OK

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmextension/types/{type}/versions
@desc Gets a list of virtual machine extension image versions.
@required {location: any # The name of a supported Azure region., publisherName: any, type: any}
@optional {$filter: any # The filter to apply on the operation., $top: any, $orderby: any}
@returns(200) OK

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmextension/types/{type}/versions/{version}
@desc Gets a virtual machine extension image.
@required {location: any # The name of a supported Azure region., publisherName: any, type: any, version: any}
@returns(200) OK

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmimage/offers
@desc Gets a list of virtual machine image offers for the specified location and publisher.
@required {location: any # The name of a supported Azure region., publisherName: any # A valid image publisher.}
@returns(200) OK

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmimage/offers/{offer}/skus
@desc Gets a list of virtual machine image SKUs for the specified location, publisher, and offer.
@required {location: any # The name of a supported Azure region., publisherName: any # A valid image publisher., offer: any # A valid image publisher offer.}
@returns(200) OK

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmimage/offers/{offer}/skus/{skus}/versions
@desc Gets a list of all virtual machine image versions for the specified location, publisher, offer, and SKU.
@required {location: any # The name of a supported Azure region., publisherName: any # A valid image publisher., offer: any # A valid image publisher offer., skus: any # A valid image SKU.}
@optional {$filter: any # The filter to apply on the operation., $top: any, $orderby: any}
@returns(200) OK

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmimage/offers/{offer}/skus/{skus}/versions/{version}
@desc Gets a virtual machine image.
@required {location: any # The name of a supported Azure region., publisherName: any # A valid image publisher., offer: any # A valid image publisher offer., skus: any # A valid image SKU., version: any # A valid image SKU version.}
@returns(200) OK

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/usages
@desc Gets, for the specified location, the current compute resource usage information as well as the limits for compute resources under the subscription.
@required {location: any # The location for which resource usage is queried.}
@returns(200) OK

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/virtualMachines
@desc Gets all the virtual machines under the specified subscription for the specified location.
@required {location: any # The location for which virtual machines under the subscription are queried.}
@returns(200) OK

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/vmSizes
@desc This API is deprecated. Use [Resources Skus](https://docs.microsoft.com/en-us/rest/api/compute/resourceskus/list)
@required {location: any # The location upon which virtual-machine-sizes is queried.}
@returns(200) OK

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/proximityPlacementGroups
@desc Lists all proximity placement groups in a subscription.
@returns(200) OK

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/virtualMachineScaleSets
@desc Gets a list of all VM Scale Sets in the subscription, regardless of the associated resource group. Use nextLink property in the response to get the next page of VM Scale Sets. Do this till nextLink is null to fetch all the VM Scale Sets.
@returns(200) OK

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/virtualMachines
@desc Lists all of the virtual machines in the specified subscription. Use the nextLink property in the response to get the next page of virtual machines.
@returns(200) OK

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets
@desc Lists all availability sets in a resource group.
@required {resourceGroupName: any # The name of the resource group.}
@returns(200) OK

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}
@desc Delete an availability set.
@required {resourceGroupName: any # The name of the resource group., availabilitySetName: any # The name of the availability set.}
@returns(200) OK
@returns(204) No Content

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}
@desc Retrieves information about an availability set.
@required {resourceGroupName: any # The name of the resource group., availabilitySetName: any # The name of the availability set.}
@returns(200) OK

@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}
@desc Update an availability set.
@required {resourceGroupName: any # The name of the resource group., availabilitySetName: any # The name of the availability set., parameters: any # Parameters supplied to the Update Availability Set operation.}
@returns(200) OK

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}
@desc Create or update an availability set.
@required {resourceGroupName: any # The name of the resource group., availabilitySetName: any # The name of the availability set., parameters: any # Parameters supplied to the Create Availability Set operation.}
@returns(200) OK

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}/vmSizes
@desc Lists all available virtual machine sizes that can be used to create a new virtual machine in an existing availability set.
@required {resourceGroupName: any # The name of the resource group., availabilitySetName: any # The name of the availability set.}
@returns(200) OK

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups
@desc Lists all of the dedicated host groups in the specified resource group. Use the nextLink property in the response to get the next page of dedicated host groups.
@required {resourceGroupName: any # The name of the resource group.}
@returns(200) OK

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}
@desc Delete a dedicated host group.
@required {resourceGroupName: any # The name of the resource group., hostGroupName: any # The name of the dedicated host group.}
@returns(200) OK
@returns(204) No Content

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}
@desc Retrieves information about a dedicated host group.
@required {resourceGroupName: any # The name of the resource group., hostGroupName: any # The name of the dedicated host group.}
@returns(200) OK

@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}
@desc Update an dedicated host group.
@required {resourceGroupName: any # The name of the resource group., hostGroupName: any # The name of the dedicated host group., parameters: any # Parameters supplied to the Update Dedicated Host Group operation.}
@returns(200) OK

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}
@desc Create or update a dedicated host group. For details of Dedicated Host and Dedicated Host Groups please see [Dedicated Host Documentation] (https://go.microsoft.com/fwlink/?linkid=2082596)
@required {resourceGroupName: any # The name of the resource group., hostGroupName: any # The name of the dedicated host group., parameters: any # Parameters supplied to the Create Dedicated Host Group.}
@returns(200) OK
@returns(201) Created

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}/hosts
@desc Lists all of the dedicated hosts in the specified dedicated host group. Use the nextLink property in the response to get the next page of dedicated hosts.
@required {resourceGroupName: any # The name of the resource group., hostGroupName: any # The name of the dedicated host group.}
@returns(200) OK

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}/hosts/{hostName}
@desc Delete a dedicated host.
@required {resourceGroupName: any # The name of the resource group., hostGroupName: any # The name of the dedicated host group., hostName: any # The name of the dedicated host.}
@returns(200) OK
@returns(202) Accepted
@returns(204) No Content

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}/hosts/{hostName}
@desc Retrieves information about a dedicated host.
@required {resourceGroupName: any # The name of the resource group., hostGroupName: any # The name of the dedicated host group., hostName: any # The name of the dedicated host.}
@optional {$expand: any # The expand expression to apply on the operation.}
@returns(200) OK

@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}/hosts/{hostName}
@desc Update an dedicated host .
@required {resourceGroupName: any # The name of the resource group., hostGroupName: any # The name of the dedicated host group., hostName: any # The name of the dedicated host ., parameters: any # Parameters supplied to the Update Dedicated Host operation.}
@returns(200) OK

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}/hosts/{hostName}
@desc Create or update a dedicated host .
@required {resourceGroupName: any # The name of the resource group., hostGroupName: any # The name of the dedicated host group., hostName: any # The name of the dedicated host ., parameters: any # Parameters supplied to the Create Dedicated Host.}
@returns(200) OK
@returns(201) Created

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/images
@desc Gets the list of images under a resource group.
@required {resourceGroupName: any # The name of the resource group.}
@returns(200) OK

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/images/{imageName}
@desc Deletes an Image.
@required {resourceGroupName: any # The name of the resource group., imageName: any # The name of the image.}
@returns(200) OK
@returns(202) Accepted
@returns(204) No Content

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/images/{imageName}
@desc Gets an image.
@required {resourceGroupName: any # The name of the resource group., imageName: any # The name of the image.}
@optional {$expand: any # The expand expression to apply on the operation.}
@returns(200) OK

@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/images/{imageName}
@desc Update an image.
@required {resourceGroupName: any # The name of the resource group., imageName: any # The name of the image., parameters: any # Parameters supplied to the Update Image operation.}
@returns(200) OK
@returns(201) Created

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/images/{imageName}
@desc Create or update an image.
@required {resourceGroupName: any # The name of the resource group., imageName: any # The name of the image., parameters: any # Parameters supplied to the Create Image operation.}
@returns(200) OK
@returns(201) Created

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/proximityPlacementGroups
@desc Lists all proximity placement groups in a resource group.
@required {resourceGroupName: any # The name of the resource group.}
@returns(200) OK

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/proximityPlacementGroups/{proximityPlacementGroupName}
@desc Delete a proximity placement group.
@required {resourceGroupName: any # The name of the resource group., proximityPlacementGroupName: any # The name of the proximity placement group.}
@returns(200) OK

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/proximityPlacementGroups/{proximityPlacementGroupName}
@desc Retrieves information about a proximity placement group .
@required {resourceGroupName: any # The name of the resource group., proximityPlacementGroupName: any # The name of the proximity placement group.}
@returns(200) OK

@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/proximityPlacementGroups/{proximityPlacementGroupName}
@desc Update a proximity placement group.
@required {resourceGroupName: any # The name of the resource group., proximityPlacementGroupName: any # The name of the proximity placement group., parameters: any # Parameters supplied to the Update Proximity Placement Group operation.}
@returns(200) OK

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/proximityPlacementGroups/{proximityPlacementGroupName}
@desc Create or update a proximity placement group.
@required {resourceGroupName: any # The name of the resource group., proximityPlacementGroupName: any # The name of the proximity placement group., parameters: any # Parameters supplied to the Create Proximity Placement Group operation.}
@returns(200) OK
@returns(201) Created

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets
@desc Gets a list of all VM scale sets under a resource group.
@required {resourceGroupName: any # The name of the resource group.}
@returns(200) OK

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{virtualMachineScaleSetName}/virtualMachines
@desc Gets a list of all virtual machines in a VM scale sets.
@required {resourceGroupName: any # The name of the resource group., virtualMachineScaleSetName: any # The name of the VM scale set.}
@optional {$filter: any # The filter to apply to the operation., $select: any # The list parameters., $expand: any # The expand expression to apply to the operation.}
@returns(200) OK

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}
@desc Deletes a VM scale set.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set.}
@returns(200) OK
@returns(202) Accepted
@returns(204) No Content

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}
@desc Display information about a virtual machine scale set.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set.}
@returns(200) OK

@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}
@desc Update a VM scale set.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set to create or update., parameters: any # The scale set object.}
@returns(200) OK

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}
@desc Create or update a VM scale set.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set to create or update., parameters: any # The scale set object.}
@returns(200) OK
@returns(201) Created

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/convertToSinglePlacementGroup
@desc Converts SinglePlacementGroup property to false for a existing virtual machine scale set.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the virtual machine scale set to create or update., parameters: any # The input object for ConvertToSinglePlacementGroup API.}
@returns(200) OK

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/deallocate
@desc Deallocates specific virtual machines in a VM scale set. Shuts down the virtual machines and releases the compute resources. You are not billed for the compute resources that this virtual machine scale set deallocates.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set.}
@optional {vmInstanceIDs: any # A list of virtual machine instance IDs from the VM scale set.}
@returns(200) OK
@returns(202) Accepted

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/delete
@desc Deletes virtual machines in a VM scale set.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set., vmInstanceIDs: any # A list of virtual machine instance IDs from the VM scale set.}
@returns(200) OK
@returns(202) Accepted

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/extensionRollingUpgrade
@desc Starts a rolling upgrade to move all extensions for all virtual machine scale set instances to the latest available extension version. Instances which are already running the latest extension versions are not affected.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set.}
@returns(200) OK
@returns(202) Accepted

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/extensions
@desc Gets a list of all extensions in a VM scale set.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set containing the extension.}
@returns(200) OK

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/extensions/{vmssExtensionName}
@desc The operation to delete the extension.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set where the extension should be deleted., vmssExtensionName: any # The name of the VM scale set extension.}
@returns(200) OK
@returns(202) Accepted
@returns(204) No Content

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/extensions/{vmssExtensionName}
@desc The operation to get the extension.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set containing the extension., vmssExtensionName: any # The name of the VM scale set extension.}
@optional {$expand: any # The expand expression to apply on the operation.}
@returns(200) OK

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/extensions/{vmssExtensionName}
@desc The operation to create or update an extension.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set where the extension should be create or updated., vmssExtensionName: any # The name of the VM scale set extension., extensionParameters: any # Parameters supplied to the Create VM scale set Extension operation.}
@returns(200) OK
@returns(201) Created

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/forceRecoveryServiceFabricPlatformUpdateDomainWalk
@desc Manual platform update domain walk to update virtual machines in a service fabric virtual machine scale set.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set., platformUpdateDomain: any # The platform update domain for which a manual recovery walk is requested}
@returns(200) OK

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/instanceView
@desc Gets the status of a VM scale set instance.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set.}
@returns(200) OK

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/manualupgrade
@desc Upgrades one or more virtual machines to the latest SKU set in the VM scale set model.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set., vmInstanceIDs: any # A list of virtual machine instance IDs from the VM scale set.}
@returns(200) OK
@returns(202) Accepted

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/osRollingUpgrade
@desc Starts a rolling upgrade to move all virtual machine scale set instances to the latest available Platform Image OS version. Instances which are already running the latest available OS version are not affected.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set.}
@returns(200) OK
@returns(202) Accepted

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/osUpgradeHistory
@desc Gets list of OS upgrades on a VM scale set instance.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set.}
@returns(200) OK

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/performMaintenance
@desc Perform maintenance on one or more virtual machines in a VM scale set. Operation on instances which are not eligible for perform maintenance will be failed. Please refer to best practices for more details: https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-maintenance-notifications
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set.}
@optional {vmInstanceIDs: any # A list of virtual machine instance IDs from the VM scale set.}
@returns(200) OK
@returns(202) Accepted

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/poweroff
@desc Power off (stop) one or more virtual machines in a VM scale set. Note that resources are still attached and you are getting charged for the resources. Instead, use deallocate to release resources and avoid charges.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set.}
@optional {vmInstanceIDs: any # A list of virtual machine instance IDs from the VM scale set., skipShutdown: any # The parameter to request non-graceful VM shutdown. True value for this flag indicates non-graceful shutdown whereas false indicates otherwise. Default value for this flag is false if not specified}
@returns(200) OK
@returns(202) Accepted

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/redeploy
@desc Shuts down all the virtual machines in the virtual machine scale set, moves them to a new node, and powers them back on.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set.}
@optional {vmInstanceIDs: any # A list of virtual machine instance IDs from the VM scale set.}
@returns(200) OK
@returns(202) Accepted

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/reimage
@desc Reimages (upgrade the operating system) one or more virtual machines in a VM scale set which don't have a ephemeral OS disk, for virtual machines who have a ephemeral OS disk the virtual machine is reset to initial state.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set.}
@optional {vmScaleSetReimageInput: any # Parameters for Reimaging VM ScaleSet.}
@returns(200) OK
@returns(202) Accepted

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/reimageall
@desc Reimages all the disks ( including data disks ) in the virtual machines in a VM scale set. This operation is only supported for managed disks.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set.}
@optional {vmInstanceIDs: any # A list of virtual machine instance IDs from the VM scale set.}
@returns(200) OK
@returns(202) Accepted

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/restart
@desc Restarts one or more virtual machines in a VM scale set.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set.}
@optional {vmInstanceIDs: any # A list of virtual machine instance IDs from the VM scale set.}
@returns(200) OK
@returns(202) Accepted

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/rollingUpgrades/cancel
@desc Cancels the current virtual machine scale set rolling upgrade.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set.}
@returns(200) OK
@returns(202) Accepted

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/rollingUpgrades/latest
@desc Gets the status of the latest virtual machine scale set rolling upgrade.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set.}
@returns(200) OK

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/skus
@desc Gets a list of SKUs available for your VM scale set, including the minimum and maximum VM instances allowed for each SKU.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set.}
@returns(200) OK

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/start
@desc Starts one or more virtual machines in a VM scale set.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set.}
@optional {vmInstanceIDs: any # A list of virtual machine instance IDs from the VM scale set.}
@returns(200) OK
@returns(202) Accepted

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}
@desc Deletes a virtual machine from a VM scale set.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set., instanceId: any # The instance ID of the virtual machine.}
@returns(200) OK
@returns(202) Accepted
@returns(204) No Content

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}
@desc Gets a virtual machine from a VM scale set.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set., instanceId: any # The instance ID of the virtual machine.}
@optional {$expand: any # The expand expression to apply on the operation.}
@returns(200) OK

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}
@desc Updates a virtual machine of a VM scale set.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set where the extension should be create or updated., instanceId: any # The instance ID of the virtual machine., parameters: any # Parameters supplied to the Update Virtual Machine Scale Sets VM operation.}
@returns(200) OK
@returns(202) Accepted

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/deallocate
@desc Deallocates a specific virtual machine in a VM scale set. Shuts down the virtual machine and releases the compute resources it uses. You are not billed for the compute resources of this virtual machine once it is deallocated.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set., instanceId: any # The instance ID of the virtual machine.}
@returns(200) OK
@returns(202) Accepted

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/instanceView
@desc Gets the status of a virtual machine from a VM scale set.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set., instanceId: any # The instance ID of the virtual machine.}
@returns(200) OK

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/performMaintenance
@desc Performs maintenance on a virtual machine in a VM scale set.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set., instanceId: any # The instance ID of the virtual machine.}
@returns(200) OK
@returns(202) Accepted

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/poweroff
@desc Power off (stop) a virtual machine in a VM scale set. Note that resources are still attached and you are getting charged for the resources. Instead, use deallocate to release resources and avoid charges.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set., instanceId: any # The instance ID of the virtual machine.}
@optional {skipShutdown: any # The parameter to request non-graceful VM shutdown. True value for this flag indicates non-graceful shutdown whereas false indicates otherwise. Default value for this flag is false if not specified}
@returns(200) OK
@returns(202) Accepted

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/redeploy
@desc Shuts down the virtual machine in the virtual machine scale set, moves it to a new node, and powers it back on.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set., instanceId: any # The instance ID of the virtual machine.}
@returns(200) OK
@returns(202) Accepted

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/reimage
@desc Reimages (upgrade the operating system) a specific virtual machine in a VM scale set.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set., instanceId: any # The instance ID of the virtual machine.}
@optional {vmScaleSetVMReimageInput: any # Parameters for the Reimaging Virtual machine in ScaleSet.}
@returns(200) OK
@returns(202) Accepted

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/reimageall
@desc Allows you to re-image all the disks ( including data disks ) in the a VM scale set instance. This operation is only supported for managed disks.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set., instanceId: any # The instance ID of the virtual machine.}
@returns(200) OK
@returns(202) Accepted

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/restart
@desc Restarts a virtual machine in a VM scale set.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set., instanceId: any # The instance ID of the virtual machine.}
@returns(200) OK
@returns(202) Accepted

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/start
@desc Starts a virtual machine in a VM scale set.
@required {resourceGroupName: any # The name of the resource group., vmScaleSetName: any # The name of the VM scale set., instanceId: any # The instance ID of the virtual machine.}
@returns(200) OK
@returns(202) Accepted

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines
@desc Lists all of the virtual machines in the specified resource group. Use the nextLink property in the response to get the next page of virtual machines.
@required {resourceGroupName: any # The name of the resource group.}
@returns(200) OK

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}
@desc The operation to delete a virtual machine.
@required {resourceGroupName: any # The name of the resource group., vmName: any # The name of the virtual machine.}
@returns(200) OK
@returns(202) Accepted
@returns(204) No Content

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}
@desc Retrieves information about the model view or the instance view of a virtual machine.
@required {resourceGroupName: any # The name of the resource group., vmName: any # The name of the virtual machine.}
@optional {$expand: any # The expand expression to apply on the operation.}
@returns(200) OK

@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}
@desc The operation to update a virtual machine.
@required {resourceGroupName: any # The name of the resource group., vmName: any # The name of the virtual machine., parameters: any # Parameters supplied to the Update Virtual Machine operation.}
@returns(200) OK
@returns(201) Created

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}
@desc The operation to create or update a virtual machine.
@required {resourceGroupName: any # The name of the resource group., vmName: any # The name of the virtual machine., parameters: any # Parameters supplied to the Create Virtual Machine operation.}
@returns(200) OK
@returns(201) Created

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/capture
@desc Captures the VM by copying virtual hard disks of the VM and outputs a template that can be used to create similar VMs.
@required {resourceGroupName: any # The name of the resource group., vmName: any # The name of the virtual machine., parameters: any # Parameters supplied to the Capture Virtual Machine operation.}
@returns(200) OK
@returns(202) Accepted

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/convertToManagedDisks
@desc Converts virtual machine disks from blob-based to managed disks. Virtual machine must be stop-deallocated before invoking this operation.
@required {resourceGroupName: any # The name of the resource group., vmName: any # The name of the virtual machine.}
@returns(200) OK
@returns(202) Accepted

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/deallocate
@desc Shuts down the virtual machine and releases the compute resources. You are not billed for the compute resources that this virtual machine uses.
@required {resourceGroupName: any # The name of the resource group., vmName: any # The name of the virtual machine.}
@returns(200) OK
@returns(202) Accepted

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/extensions
@desc The operation to get all extensions of a Virtual Machine.
@required {resourceGroupName: any # The name of the resource group., vmName: any # The name of the virtual machine containing the extension.}
@optional {$expand: any # The expand expression to apply on the operation.}
@returns(200) OK

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/extensions/{vmExtensionName}
@desc The operation to delete the extension.
@required {resourceGroupName: any # The name of the resource group., vmName: any # The name of the virtual machine where the extension should be deleted., vmExtensionName: any # The name of the virtual machine extension.}
@returns(200) OK
@returns(202) Accepted
@returns(204) No Content

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/extensions/{vmExtensionName}
@desc The operation to get the extension.
@required {resourceGroupName: any # The name of the resource group., vmName: any # The name of the virtual machine containing the extension., vmExtensionName: any # The name of the virtual machine extension.}
@optional {$expand: any # The expand expression to apply on the operation.}
@returns(200) OK

@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/extensions/{vmExtensionName}
@desc The operation to update the extension.
@required {resourceGroupName: any # The name of the resource group., vmName: any # The name of the virtual machine where the extension should be updated., vmExtensionName: any # The name of the virtual machine extension., extensionParameters: any # Parameters supplied to the Update Virtual Machine Extension operation.}
@returns(200) OK

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/extensions/{vmExtensionName}
@desc The operation to create or update the extension.
@required {resourceGroupName: any # The name of the resource group., vmName: any # The name of the virtual machine where the extension should be created or updated., vmExtensionName: any # The name of the virtual machine extension., extensionParameters: any # Parameters supplied to the Create Virtual Machine Extension operation.}
@returns(200) OK
@returns(201) Created

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/generalize
@desc Sets the state of the virtual machine to generalized.
@required {resourceGroupName: any # The name of the resource group., vmName: any # The name of the virtual machine.}
@returns(200) OK

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/instanceView
@desc Retrieves information about the run-time state of a virtual machine.
@required {resourceGroupName: any # The name of the resource group., vmName: any # The name of the virtual machine.}
@returns(200) OK

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/performMaintenance
@desc The operation to perform maintenance on a virtual machine.
@required {resourceGroupName: any # The name of the resource group., vmName: any # The name of the virtual machine.}
@returns(200) OK
@returns(202) Accepted

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/powerOff
@desc The operation to power off (stop) a virtual machine. The virtual machine can be restarted with the same provisioned resources. You are still charged for this virtual machine.
@required {resourceGroupName: any # The name of the resource group., vmName: any # The name of the virtual machine.}
@optional {skipShutdown: any # The parameter to request non-graceful VM shutdown. True value for this flag indicates non-graceful shutdown whereas false indicates otherwise. Default value for this flag is false if not specified}
@returns(200) OK
@returns(202) Accepted

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/redeploy
@desc Shuts down the virtual machine, moves it to a new node, and powers it back on.
@required {resourceGroupName: any # The name of the resource group., vmName: any # The name of the virtual machine.}
@returns(200) OK
@returns(202) Accepted

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/reimage
@desc Reimages the virtual machine which has an ephemeral OS disk back to its initial state.
@required {resourceGroupName: any # The name of the resource group., vmName: any # The name of the virtual machine.}
@optional {parameters: any # Parameters supplied to the Reimage Virtual Machine operation.}
@returns(200) OK
@returns(202) Accepted

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/restart
@desc The operation to restart a virtual machine.
@required {resourceGroupName: any # The name of the resource group., vmName: any # The name of the virtual machine.}
@returns(200) OK
@returns(202) Accepted

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/start
@desc The operation to start a virtual machine.
@required {resourceGroupName: any # The name of the resource group., vmName: any # The name of the virtual machine.}
@returns(200) OK
@returns(202) Accepted

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/vmSizes
@desc Lists all available virtual machine sizes to which the specified virtual machine can be resized.
@required {resourceGroupName: any # The name of the resource group., vmName: any # The name of the virtual machine.}
@returns(200) OK

@endgroup

@end
