@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, subscriptionId: any}
@endpoints 109
@hint download_for_search
@toc providers(1), subscriptions(108)

@group providers
@endpoint GET /providers/Microsoft.Compute/operations
@returns(200)

@endgroup

@group subscriptions
@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/availabilitySets
@optional {$expand: any}
@returns(200)

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/hostGroups
@returns(200)

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/images
@returns(200)

@endpoint POST /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/logAnalytics/apiAccess/getRequestRateByInterval
@required {parameters: any, location: any}
@returns(200)
@returns(202)

@endpoint POST /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/logAnalytics/apiAccess/getThrottledRequests
@required {parameters: any, location: any}
@returns(200)
@returns(202)

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers
@required {location: any}
@returns(200)

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmextension/types
@required {location: any, publisherName: any}
@returns(200)

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmextension/types/{type}/versions
@required {location: any, publisherName: any, type: any}
@optional {$filter: any, $top: any, $orderby: any}
@returns(200)

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmextension/types/{type}/versions/{version}
@required {location: any, publisherName: any, type: any, version: any}
@returns(200)

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmimage/offers
@required {location: any, publisherName: any}
@returns(200)

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmimage/offers/{offer}/skus
@required {location: any, publisherName: any, offer: any}
@returns(200)

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmimage/offers/{offer}/skus/{skus}/versions
@required {location: any, publisherName: any, offer: any, skus: any}
@optional {$filter: any, $top: any, $orderby: any}
@returns(200)

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmimage/offers/{offer}/skus/{skus}/versions/{version}
@required {location: any, publisherName: any, offer: any, skus: any, version: any}
@returns(200)

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/usages
@required {location: any}
@returns(200)

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/virtualMachines
@required {location: any}
@returns(200)

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/vmSizes
@required {location: any}
@returns(200)

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/proximityPlacementGroups
@returns(200)

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/virtualMachineScaleSets
@returns(200)

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/virtualMachines
@returns(200)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets
@required {resourceGroupName: any}
@returns(200)

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}
@required {resourceGroupName: any, availabilitySetName: any}
@returns(200)
@returns(204)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}
@required {resourceGroupName: any, availabilitySetName: any}
@returns(200)

@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}
@required {resourceGroupName: any, availabilitySetName: any, parameters: any}
@returns(200)

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}
@required {resourceGroupName: any, availabilitySetName: any, parameters: any}
@returns(200)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}/vmSizes
@required {resourceGroupName: any, availabilitySetName: any}
@returns(200)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups
@required {resourceGroupName: any}
@returns(200)

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}
@required {resourceGroupName: any, hostGroupName: any}
@returns(200)
@returns(204)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}
@required {resourceGroupName: any, hostGroupName: any}
@returns(200)

@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}
@required {resourceGroupName: any, hostGroupName: any, parameters: any}
@returns(200)

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}
@required {resourceGroupName: any, hostGroupName: any, parameters: any}
@returns(200)
@returns(201)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}/hosts
@required {resourceGroupName: any, hostGroupName: any}
@returns(200)

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}/hosts/{hostName}
@required {resourceGroupName: any, hostGroupName: any, hostName: any}
@returns(200)
@returns(202)
@returns(204)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}/hosts/{hostName}
@required {resourceGroupName: any, hostGroupName: any, hostName: any}
@optional {$expand: any}
@returns(200)

@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}/hosts/{hostName}
@required {resourceGroupName: any, hostGroupName: any, hostName: any, parameters: any}
@returns(200)

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}/hosts/{hostName}
@required {resourceGroupName: any, hostGroupName: any, hostName: any, parameters: any}
@returns(200)
@returns(201)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/images
@required {resourceGroupName: any}
@returns(200)

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/images/{imageName}
@required {resourceGroupName: any, imageName: any}
@returns(200)
@returns(202)
@returns(204)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/images/{imageName}
@required {resourceGroupName: any, imageName: any}
@optional {$expand: any}
@returns(200)

@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/images/{imageName}
@required {resourceGroupName: any, imageName: any, parameters: any}
@returns(200)
@returns(201)

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/images/{imageName}
@required {resourceGroupName: any, imageName: any, parameters: any}
@returns(200)
@returns(201)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/proximityPlacementGroups
@required {resourceGroupName: any}
@returns(200)

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/proximityPlacementGroups/{proximityPlacementGroupName}
@required {resourceGroupName: any, proximityPlacementGroupName: any}
@returns(200)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/proximityPlacementGroups/{proximityPlacementGroupName}
@required {resourceGroupName: any, proximityPlacementGroupName: any}
@returns(200)

@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/proximityPlacementGroups/{proximityPlacementGroupName}
@required {resourceGroupName: any, proximityPlacementGroupName: any, parameters: any}
@returns(200)

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/proximityPlacementGroups/{proximityPlacementGroupName}
@required {resourceGroupName: any, proximityPlacementGroupName: any, parameters: any}
@returns(200)
@returns(201)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets
@required {resourceGroupName: any}
@returns(200)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{virtualMachineScaleSetName}/virtualMachines
@required {resourceGroupName: any, virtualMachineScaleSetName: any}
@optional {$filter: any, $select: any, $expand: any}
@returns(200)

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}
@required {resourceGroupName: any, vmScaleSetName: any}
@returns(200)
@returns(202)
@returns(204)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}
@required {resourceGroupName: any, vmScaleSetName: any}
@returns(200)

@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}
@required {resourceGroupName: any, vmScaleSetName: any, parameters: any}
@returns(200)

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}
@required {resourceGroupName: any, vmScaleSetName: any, parameters: any}
@returns(200)
@returns(201)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/convertToSinglePlacementGroup
@required {resourceGroupName: any, vmScaleSetName: any, parameters: any}
@returns(200)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/deallocate
@required {resourceGroupName: any, vmScaleSetName: any}
@optional {vmInstanceIDs: any}
@returns(200)
@returns(202)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/delete
@required {resourceGroupName: any, vmScaleSetName: any, vmInstanceIDs: any}
@returns(200)
@returns(202)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/extensionRollingUpgrade
@required {resourceGroupName: any, vmScaleSetName: any}
@returns(200)
@returns(202)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/extensions
@required {resourceGroupName: any, vmScaleSetName: any}
@returns(200)

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/extensions/{vmssExtensionName}
@required {resourceGroupName: any, vmScaleSetName: any, vmssExtensionName: any}
@returns(200)
@returns(202)
@returns(204)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/extensions/{vmssExtensionName}
@required {resourceGroupName: any, vmScaleSetName: any, vmssExtensionName: any}
@optional {$expand: any}
@returns(200)

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/extensions/{vmssExtensionName}
@required {resourceGroupName: any, vmScaleSetName: any, vmssExtensionName: any, extensionParameters: any}
@returns(200)
@returns(201)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/forceRecoveryServiceFabricPlatformUpdateDomainWalk
@required {resourceGroupName: any, vmScaleSetName: any, platformUpdateDomain: any}
@returns(200)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/instanceView
@required {resourceGroupName: any, vmScaleSetName: any}
@returns(200)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/manualupgrade
@required {resourceGroupName: any, vmScaleSetName: any, vmInstanceIDs: any}
@returns(200)
@returns(202)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/osRollingUpgrade
@required {resourceGroupName: any, vmScaleSetName: any}
@returns(200)
@returns(202)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/osUpgradeHistory
@required {resourceGroupName: any, vmScaleSetName: any}
@returns(200)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/performMaintenance
@required {resourceGroupName: any, vmScaleSetName: any}
@optional {vmInstanceIDs: any}
@returns(200)
@returns(202)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/poweroff
@required {resourceGroupName: any, vmScaleSetName: any}
@optional {vmInstanceIDs: any, skipShutdown: any}
@returns(200)
@returns(202)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/redeploy
@required {resourceGroupName: any, vmScaleSetName: any}
@optional {vmInstanceIDs: any}
@returns(200)
@returns(202)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/reimage
@required {resourceGroupName: any, vmScaleSetName: any}
@optional {vmScaleSetReimageInput: any}
@returns(200)
@returns(202)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/reimageall
@required {resourceGroupName: any, vmScaleSetName: any}
@optional {vmInstanceIDs: any}
@returns(200)
@returns(202)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/restart
@required {resourceGroupName: any, vmScaleSetName: any}
@optional {vmInstanceIDs: any}
@returns(200)
@returns(202)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/rollingUpgrades/cancel
@required {resourceGroupName: any, vmScaleSetName: any}
@returns(200)
@returns(202)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/rollingUpgrades/latest
@required {resourceGroupName: any, vmScaleSetName: any}
@returns(200)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/skus
@required {resourceGroupName: any, vmScaleSetName: any}
@returns(200)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/start
@required {resourceGroupName: any, vmScaleSetName: any}
@optional {vmInstanceIDs: any}
@returns(200)
@returns(202)

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}
@required {resourceGroupName: any, vmScaleSetName: any, instanceId: any}
@returns(200)
@returns(202)
@returns(204)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}
@required {resourceGroupName: any, vmScaleSetName: any, instanceId: any}
@optional {$expand: any}
@returns(200)

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}
@required {resourceGroupName: any, vmScaleSetName: any, instanceId: any, parameters: any}
@returns(200)
@returns(202)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/deallocate
@required {resourceGroupName: any, vmScaleSetName: any, instanceId: any}
@returns(200)
@returns(202)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/instanceView
@required {resourceGroupName: any, vmScaleSetName: any, instanceId: any}
@returns(200)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/performMaintenance
@required {resourceGroupName: any, vmScaleSetName: any, instanceId: any}
@returns(200)
@returns(202)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/poweroff
@required {resourceGroupName: any, vmScaleSetName: any, instanceId: any}
@optional {skipShutdown: any}
@returns(200)
@returns(202)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/redeploy
@required {resourceGroupName: any, vmScaleSetName: any, instanceId: any}
@returns(200)
@returns(202)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/reimage
@required {resourceGroupName: any, vmScaleSetName: any, instanceId: any}
@optional {vmScaleSetVMReimageInput: any}
@returns(200)
@returns(202)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/reimageall
@required {resourceGroupName: any, vmScaleSetName: any, instanceId: any}
@returns(200)
@returns(202)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/restart
@required {resourceGroupName: any, vmScaleSetName: any, instanceId: any}
@returns(200)
@returns(202)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/start
@required {resourceGroupName: any, vmScaleSetName: any, instanceId: any}
@returns(200)
@returns(202)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines
@required {resourceGroupName: any}
@returns(200)

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}
@required {resourceGroupName: any, vmName: any}
@returns(200)
@returns(202)
@returns(204)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}
@required {resourceGroupName: any, vmName: any}
@optional {$expand: any}
@returns(200)

@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}
@required {resourceGroupName: any, vmName: any, parameters: any}
@returns(200)
@returns(201)

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}
@required {resourceGroupName: any, vmName: any, parameters: any}
@returns(200)
@returns(201)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/capture
@required {resourceGroupName: any, vmName: any, parameters: any}
@returns(200)
@returns(202)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/convertToManagedDisks
@required {resourceGroupName: any, vmName: any}
@returns(200)
@returns(202)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/deallocate
@required {resourceGroupName: any, vmName: any}
@returns(200)
@returns(202)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/extensions
@required {resourceGroupName: any, vmName: any}
@optional {$expand: any}
@returns(200)

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/extensions/{vmExtensionName}
@required {resourceGroupName: any, vmName: any, vmExtensionName: any}
@returns(200)
@returns(202)
@returns(204)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/extensions/{vmExtensionName}
@required {resourceGroupName: any, vmName: any, vmExtensionName: any}
@optional {$expand: any}
@returns(200)

@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/extensions/{vmExtensionName}
@required {resourceGroupName: any, vmName: any, vmExtensionName: any, extensionParameters: any}
@returns(200)

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/extensions/{vmExtensionName}
@required {resourceGroupName: any, vmName: any, vmExtensionName: any, extensionParameters: any}
@returns(200)
@returns(201)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/generalize
@required {resourceGroupName: any, vmName: any}
@returns(200)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/instanceView
@required {resourceGroupName: any, vmName: any}
@returns(200)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/performMaintenance
@required {resourceGroupName: any, vmName: any}
@returns(200)
@returns(202)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/powerOff
@required {resourceGroupName: any, vmName: any}
@optional {skipShutdown: any}
@returns(200)
@returns(202)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/redeploy
@required {resourceGroupName: any, vmName: any}
@returns(200)
@returns(202)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/reimage
@required {resourceGroupName: any, vmName: any}
@optional {parameters: any}
@returns(200)
@returns(202)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/restart
@required {resourceGroupName: any, vmName: any}
@returns(200)
@returns(202)

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/start
@required {resourceGroupName: any, vmName: any}
@returns(200)
@returns(202)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/vmSizes
@required {resourceGroupName: any, vmName: any}
@returns(200)

@endgroup

@end
