swagger: "2.0"
schemes:
  - https
host: management.azure.com
info:
  description: The Compute Management Client.
  title: ComputeManagementClient
  version: 2019-03-01
  x-apisguru-categories:
    - cloud
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/https_assets.onestore.ms_cdnfiles_onestorerolling-1606-01000_shell_v3_images_logo_microsoft.png
  x-origin:
    - format: swagger
      url: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/compute/resource-manager/Microsoft.Compute/stable/2019-03-01/compute.json
      version: "2.0"
  x-preferred: true
  x-providerName: azure.com
  x-serviceName: compute
  x-tags:
    - Azure
    - Microsoft
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  azure_auth:
    authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize
    description: Azure Active Directory OAuth2 Flow
    flow: implicit
    scopes:
      user_impersonation: impersonate your user account
    type: oauth2
security:
  - azure_auth:
      - user_impersonation
parameters:
  ApiVersionParameter:
    description: Client Api Version.
    in: query
    name: api-version
    required: true
    type: string
  SubscriptionIdParameter:
    description: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
    in: path
    name: subscriptionId
    required: true
    type: string
paths:
  /providers/Microsoft.Compute/operations:
    get:
      description: Gets a list of compute operations.
      operationId: Operations_List
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ComputeOperationListResult"
      tags:
        - ComputeOperations
      x-ms-pageable:
        nextLinkName: null
  "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/availabilitySets":
    get:
      description: Lists all availability sets in a subscription.
      operationId: AvailabilitySets_ListBySubscription
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
        - description: The expand expression to apply to the operation.
          in: query
          name: $expand
          required: false
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/AvailabilitySetListResult"
      tags:
        - AvailabilitySets
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/hostGroups":
    get:
      description: 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.
      operationId: DedicatedHostGroups_ListBySubscription
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/DedicatedHostGroupListResult"
      tags:
        - DedicatedHostGroups
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/images":
    get:
      description: 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.
      operationId: Images_List
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ImageListResult"
      tags:
        - Images
      x-ms-examples:
        List all virtual machine images in a subscription.:
          parameters:
            api-version: 2019-03-01
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/myImage
                    location: West US
                    name: myImage
                    properties:
                      provisioningState: created
                      storageProfile:
                        dataDisks:
                          - blobUri: https://mystorageaccount.blob.core.windows.net/dataimages/dataimage.vhd
                            lun: 1
                            managedDisk:
                              id: subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk2
                            snapshot:
                              id: subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot2
                            storageAccountType: Standard_LRS
                        osDisk:
                          blobUri: https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd
                          managedDisk:
                            id: subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk1
                          osState: Generalized
                          osType: Windows
                          snapshot:
                            id: subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot1
                          storageAccountType: Standard_LRS
                    type: Microsoft.Compute/images
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/logAnalytics/apiAccess/getRequestRateByInterval":
    post:
      description: Export logs that show Api requests made by this subscription in the given time window to show throttling activities.
      operationId: LogAnalytics_ExportRequestRateByInterval
      parameters:
        - description: Parameters supplied to the LogAnalytics getRequestRateByInterval Api.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/RequestRateByIntervalInput"
        - description: The location upon which virtual-machine-sizes is queried.
          in: path
          name: location
          pattern: ^[-\w\._]+$
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/LogAnalyticsOperationResult"
        "202":
          description: Accepted
      tags:
        - LogAnalytics
      x-ms-examples:
        Export logs which contain all Api requests made to Compute Resource Provider within the given time period broken down by intervals.:
          parameters:
            api-version: 2019-03-01
            location: westus
            parameters:
              blobContainerSasUri: https://somesasuri
              fromTime: 2018-01-21T01:54:06.862601Z
              groupByResourceName: true
              intervalLength: FiveMins
              toTime: 2018-01-23T01:54:06.862601Z
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                properties:
                  output: https://crptestar4227.blob.core.windows.net:443/sascontainer/RequestRateByInterval_20180121-0154_20180123-0154.csv
            "202": {}
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: azure-async-operation
  "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/logAnalytics/apiAccess/getThrottledRequests":
    post:
      description: Export logs that show total throttled Api requests for this subscription in the given time window.
      operationId: LogAnalytics_ExportThrottledRequests
      parameters:
        - description: Parameters supplied to the LogAnalytics getThrottledRequests Api.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/ThrottledRequestsInput"
        - description: The location upon which virtual-machine-sizes is queried.
          in: path
          name: location
          pattern: ^[-\w\._]+$
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/LogAnalyticsOperationResult"
        "202":
          description: Accepted
      tags:
        - LogAnalytics
      x-ms-examples:
        Export logs which contain all throttled Api requests made to Compute Resource Provider within the given time period.:
          parameters:
            api-version: 2019-03-01
            location: westus
            parameters:
              blobContainerSasUri: https://somesasuri
              fromTime: 2018-01-21T01:54:06.862601Z
              groupByOperationName: true
              groupByResourceName: false
              toTime: 2018-01-23T01:54:06.862601Z
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                properties:
                  output: https://crptestar4227.blob.core.windows.net:443/sascontainer/ThrottledRequests_20180121-0154_20180123-0154.csv
            "202": {}
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: azure-async-operation
  "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers":
    get:
      description: Gets a list of virtual machine image publishers for the specified Azure location.
      operationId: VirtualMachineImages_ListPublishers
      parameters:
        - description: The name of a supported Azure region.
          in: path
          name: location
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/VirtualMachineImageResource"
            type: array
      tags:
        - VirtualMachineImages
  "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmextension/types":
    get:
      description: Gets a list of virtual machine extension image types.
      operationId: VirtualMachineExtensionImages_ListTypes
      parameters:
        - description: The name of a supported Azure region.
          in: path
          name: location
          required: true
          type: string
        - in: path
          name: publisherName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/VirtualMachineExtensionImage"
            type: array
      tags:
        - VirtualMachineExtensionImages
  "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmextension/types/{type}/versions":
    get:
      description: Gets a list of virtual machine extension image versions.
      operationId: VirtualMachineExtensionImages_ListVersions
      parameters:
        - description: The name of a supported Azure region.
          in: path
          name: location
          required: true
          type: string
        - in: path
          name: publisherName
          required: true
          type: string
        - in: path
          name: type
          required: true
          type: string
        - description: The filter to apply on the operation.
          in: query
          name: $filter
          required: false
          type: string
        - format: int32
          in: query
          name: $top
          required: false
          type: integer
        - in: query
          name: $orderby
          required: false
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/VirtualMachineExtensionImage"
            type: array
      tags:
        - VirtualMachineExtensionImages
      x-ms-odata: "#/definitions/VirtualMachineExtensionImage"
  "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmextension/types/{type}/versions/{version}":
    get:
      description: Gets a virtual machine extension image.
      operationId: VirtualMachineExtensionImages_Get
      parameters:
        - description: The name of a supported Azure region.
          in: path
          name: location
          required: true
          type: string
        - in: path
          name: publisherName
          required: true
          type: string
        - in: path
          name: type
          required: true
          type: string
        - in: path
          name: version
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineExtensionImage"
      tags:
        - VirtualMachineExtensionImages
  "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmimage/offers":
    get:
      description: Gets a list of virtual machine image offers for the specified location and publisher.
      operationId: VirtualMachineImages_ListOffers
      parameters:
        - description: The name of a supported Azure region.
          in: path
          name: location
          required: true
          type: string
        - description: A valid image publisher.
          in: path
          name: publisherName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/VirtualMachineImageResource"
            type: array
      tags:
        - VirtualMachineImages
  "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmimage/offers/{offer}/skus":
    get:
      description: Gets a list of virtual machine image SKUs for the specified location, publisher, and offer.
      operationId: VirtualMachineImages_ListSkus
      parameters:
        - description: The name of a supported Azure region.
          in: path
          name: location
          required: true
          type: string
        - description: A valid image publisher.
          in: path
          name: publisherName
          required: true
          type: string
        - description: A valid image publisher offer.
          in: path
          name: offer
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/VirtualMachineImageResource"
            type: array
      tags:
        - VirtualMachineImages
  "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmimage/offers/{offer}/skus/{skus}/versions":
    get:
      description: Gets a list of all virtual machine image versions for the specified location, publisher, offer, and SKU.
      operationId: VirtualMachineImages_List
      parameters:
        - description: The name of a supported Azure region.
          in: path
          name: location
          required: true
          type: string
        - description: A valid image publisher.
          in: path
          name: publisherName
          required: true
          type: string
        - description: A valid image publisher offer.
          in: path
          name: offer
          required: true
          type: string
        - description: A valid image SKU.
          in: path
          name: skus
          required: true
          type: string
        - description: The filter to apply on the operation.
          in: query
          name: $filter
          required: false
          type: string
        - format: int32
          in: query
          name: $top
          required: false
          type: integer
        - in: query
          name: $orderby
          required: false
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/VirtualMachineImageResource"
            type: array
      tags:
        - VirtualMachineImages
      x-ms-odata: "#/definitions/VirtualMachineImageResource"
  "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/publishers/{publisherName}/artifacttypes/vmimage/offers/{offer}/skus/{skus}/versions/{version}":
    get:
      description: Gets a virtual machine image.
      operationId: VirtualMachineImages_Get
      parameters:
        - description: The name of a supported Azure region.
          in: path
          name: location
          required: true
          type: string
        - description: A valid image publisher.
          in: path
          name: publisherName
          required: true
          type: string
        - description: A valid image publisher offer.
          in: path
          name: offer
          required: true
          type: string
        - description: A valid image SKU.
          in: path
          name: skus
          required: true
          type: string
        - description: A valid image SKU version.
          in: path
          name: version
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineImage"
      tags:
        - VirtualMachineImages
  "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/usages":
    get:
      description: Gets, for the specified location, the current compute resource usage information as well as the limits for compute resources under the subscription.
      operationId: Usage_List
      parameters:
        - description: The location for which resource usage is queried.
          in: path
          name: location
          pattern: ^[-\w\._]+$
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ListUsagesResult"
      tags:
        - Usage
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/virtualMachines":
    get:
      description: Gets all the virtual machines under the specified subscription for the specified location.
      operationId: VirtualMachines_ListByLocation
      parameters:
        - description: The location for which virtual machines under the subscription are queried.
          in: path
          name: location
          pattern: ^[-\w\._]+$
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineListResult"
      tags:
        - VirtualMachines
      x-ms-examples:
        Lists all the virtual machines under the specified subscription for the specified location.:
          parameters:
            api-version: 2019-03-01
            location: eastus
            subscriptionId: "{subscriptionId}"
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}
                    location: eastus
                    name: "{virtualMachineName}"
                    properties:
                      availabilitySet:
                        id: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}
                      hardwareProfile:
                        vmSize: Standard_A0
                      networkProfile:
                        networkInterfaces:
                          - id: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}
                      osProfile:
                        adminUsername: Foo12
                        allowExtensionOperations: true
                        computerName: Test
                        secrets: []
                        windowsConfiguration:
                          enableAutomaticUpdates: true
                          provisionVMAgent: true
                      provisioningState: Succeeded
                      storageProfile:
                        dataDisks: []
                        imageReference:
                          offer: WindowsServer
                          publisher: MicrosoftWindowsServer
                          sku: 2012-R2-Datacenter
                          version: 4.127.20170406
                        osDisk:
                          caching: None
                          createOption: FromImage
                          diskSizeGB: 127
                          name: test
                          osType: Windows
                          vhd:
                            uri: https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd
                      vmId: "{vmId}"
                    tags:
                      RG: rg
                      testTag: "1"
                    type: Microsoft.Compute/virtualMachines
                  - id: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}
                    location: eastus
                    name: "{virtualMachineName}"
                    properties:
                      availabilitySet:
                        id: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}
                      hardwareProfile:
                        vmSize: Standard_A0
                      networkProfile:
                        networkInterfaces:
                          - id: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}
                      osProfile:
                        adminUsername: Foo12
                        allowExtensionOperations: true
                        computerName: Test
                        secrets: []
                        windowsConfiguration:
                          enableAutomaticUpdates: true
                          provisionVMAgent: true
                      provisioningState: Succeeded
                      storageProfile:
                        dataDisks: []
                        imageReference:
                          offer: WindowsServer
                          publisher: MicrosoftWindowsServer
                          sku: 2012-R2-Datacenter
                          version: 4.127.20170406
                        osDisk:
                          caching: None
                          createOption: FromImage
                          diskSizeGB: 127
                          name: test
                          osType: Windows
                          vhd:
                            uri: https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd
                      vmId: "{vmId}"
                    tags:
                      RG: rg
                      testTag: "1"
                    type: Microsoft.Compute/virtualMachines
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/vmSizes":
    get:
      description: This API is deprecated. Use [Resources Skus](https://docs.microsoft.com/en-us/rest/api/compute/resourceskus/list)
      operationId: VirtualMachineSizes_List
      parameters:
        - description: The location upon which virtual-machine-sizes is queried.
          in: path
          name: location
          pattern: ^[-\w\._]+$
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineSizeListResult"
      tags:
        - VirtualMachineSizes
      x-ms-pageable:
        nextLinkName: null
  "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/proximityPlacementGroups":
    get:
      description: Lists all proximity placement groups in a subscription.
      operationId: ProximityPlacementGroups_ListBySubscription
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ProximityPlacementGroupListResult"
      tags:
        - ProximityPlacementGroups
      x-ms-examples:
        Create a proximity placement group.:
          parameters:
            api-version: 2019-03-01
            parameters: {}
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                nextLink: string
                value:
                  - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/proximityPlacementGroups/myProximityPlacementGroup
                    location: westus
                    name: myProximityPlacementGroup
                    properties:
                      availabilitySets:
                        - id: string
                      proximityPlacementGroupType: Standard
                      virtualMachineScaleSets:
                        - id: string
                      virtualMachines:
                        - id: string
                    type: Microsoft.Compute/proximityPlacementGroups
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/virtualMachineScaleSets":
    get:
      description: 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.
      operationId: VirtualMachineScaleSets_ListAll
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetListWithLinkResult"
      tags:
        - VirtualMachineScaleSets
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/virtualMachines":
    get:
      description: 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.
      operationId: VirtualMachines_ListAll
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineListResult"
      tags:
        - VirtualMachines
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets":
    get:
      description: Lists all availability sets in a resource group.
      operationId: AvailabilitySets_List
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/AvailabilitySetListResult"
      tags:
        - AvailabilitySets
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}":
    delete:
      description: Delete an availability set.
      operationId: AvailabilitySets_Delete
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the availability set.
          in: path
          name: availabilitySetName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "204":
          description: No Content
      tags:
        - AvailabilitySets
    get:
      description: Retrieves information about an availability set.
      operationId: AvailabilitySets_Get
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the availability set.
          in: path
          name: availabilitySetName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/AvailabilitySet"
      tags:
        - AvailabilitySets
    patch:
      description: Update an availability set.
      operationId: AvailabilitySets_Update
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the availability set.
          in: path
          name: availabilitySetName
          required: true
          type: string
        - description: Parameters supplied to the Update Availability Set operation.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/AvailabilitySetUpdate"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/AvailabilitySet"
      tags:
        - AvailabilitySets
    put:
      description: Create or update an availability set.
      operationId: AvailabilitySets_CreateOrUpdate
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the availability set.
          in: path
          name: availabilitySetName
          required: true
          type: string
        - description: Parameters supplied to the Create Availability Set operation.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/AvailabilitySet"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/AvailabilitySet"
      tags:
        - AvailabilitySets
      x-ms-examples:
        Create an availability set.:
          parameters:
            api-version: 2019-03-01
            availabilitySetName: myAvailabilitySet
            parameters:
              location: westus
              properties:
                platformFaultDomainCount: 2
                platformUpdateDomainCount: 20
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/availabilitySets/myAvailabilitySet
                location: westus
                name: myAvailabilitySet
                properties:
                  platformFaultDomainCount: 2
                  platformUpdateDomainCount: 20
                sku:
                  name: Classic
                type: Microsoft.Compute/availabilitySets
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}/vmSizes":
    get:
      description: Lists all available virtual machine sizes that can be used to create a new virtual machine in an existing availability set.
      operationId: AvailabilitySets_ListAvailableSizes
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the availability set.
          in: path
          name: availabilitySetName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineSizeListResult"
      tags:
        - AvailabilitySets
      x-ms-pageable:
        nextLinkName: null
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups":
    get:
      description: 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.
      operationId: DedicatedHostGroups_ListByResourceGroup
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/DedicatedHostGroupListResult"
      tags:
        - DedicatedHostGroups
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}":
    delete:
      description: Delete a dedicated host group.
      operationId: DedicatedHostGroups_Delete
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the dedicated host group.
          in: path
          name: hostGroupName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "204":
          description: No Content
      tags:
        - DedicatedHostGroups
    get:
      description: Retrieves information about a dedicated host group.
      operationId: DedicatedHostGroups_Get
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the dedicated host group.
          in: path
          name: hostGroupName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/DedicatedHostGroup"
      tags:
        - DedicatedHostGroups
      x-ms-examples:
        Create a dedicated host group.:
          parameters:
            api-version: 2018-10-01
            hostGroupName: myDedicatedHostGroup
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscriptionId}"
          responses:
            "200":
              body:
                location: westus
                name: myDedicatedHostGroup
                properties:
                  hosts:
                    - id: subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/myDedicatedHostGroup/myHostGroup/Hosts/myHost1
                    - id: subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/myDedicatedHostGroup/myHostGroup/Hosts/myHost2
                  platformFaultDomainCount: 3
                tags:
                  "{tagName}": "{tagValue}"
                zones:
                  - "3"
    patch:
      description: Update an dedicated host group.
      operationId: DedicatedHostGroups_Update
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the dedicated host group.
          in: path
          name: hostGroupName
          required: true
          type: string
        - description: Parameters supplied to the Update Dedicated Host Group operation.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/DedicatedHostGroupUpdate"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/DedicatedHostGroup"
      tags:
        - DedicatedHostGroups
    put:
      description: 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)
      operationId: DedicatedHostGroups_CreateOrUpdate
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the dedicated host group.
          in: path
          name: hostGroupName
          required: true
          type: string
        - description: Parameters supplied to the Create Dedicated Host Group.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/DedicatedHostGroup"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/DedicatedHostGroup"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/DedicatedHostGroup"
      tags:
        - DedicatedHostGroups
      x-ms-examples:
        Create or update a dedicated host group.:
          parameters:
            api-version: 2018-10-01
            hostGroupName: myDedicatedHostGroup
            parameters:
              location: westus
              properties:
                platformFaultDomainCount: 3
              tags:
                department: finance
              zones:
                - "1"
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/HostGroups/myDedicatedHostGroup
                location: westus
                name: myDedicatedHostGroup
                properties:
                  hosts: []
                  platformFaultDomainCount: 3
                tags:
                  department: finance
                  owner: myCompany
                zones:
                  - "1"
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/HostGroups/myDedicatedHostGroup
                location: westus
                name: myDedicatedHostGroup
                properties:
                  hosts: []
                  platformFaultDomainCount: 3
                tags:
                  department: finance
                zones:
                  - "1"
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}/hosts":
    get:
      description: 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.
      operationId: DedicatedHosts_ListByHostGroup
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the dedicated host group.
          in: path
          name: hostGroupName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/DedicatedHostListResult"
      tags:
        - DedicatedHost
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}/hosts/{hostName}":
    delete:
      description: Delete a dedicated host.
      operationId: DedicatedHosts_Delete
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the dedicated host group.
          in: path
          name: hostGroupName
          required: true
          type: string
        - description: The name of the dedicated host.
          in: path
          name: hostName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        "204":
          description: No Content
      tags:
        - DedicatedHosts
      x-ms-long-running-operation: true
    get:
      description: Retrieves information about a dedicated host.
      operationId: DedicatedHosts_Get
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the dedicated host group.
          in: path
          name: hostGroupName
          required: true
          type: string
        - description: The name of the dedicated host.
          in: path
          name: hostName
          required: true
          type: string
        - description: The expand expression to apply on the operation.
          enum:
            - instanceView
          in: query
          name: $expand
          required: false
          type: string
          x-ms-enum:
            modelAsString: false
            name: InstanceViewTypes
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/DedicatedHost"
      tags:
        - DedicatedHosts
      x-ms-examples:
        Get a dedicated host.:
          parameters:
            api-version: 2018-10-01
            hostGroupName: myDedicatedHostGroup
            hostName: myHost
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscriptionId}"
          responses:
            "200":
              body:
                location: westus
                name: myHost
                properties:
                  autoReplaceOnFailure: true
                  hostId: "{GUID}"
                  instanceView:
                    assetId: eb3f58b8-b4e8-4882-b69f-301a01812407
                    availableCapacity:
                      allocatableVMs:
                        - count: 10
                          vmSize: Standard_A1
                    statuses:
                      - code: ProvisioningState/succeeded
                        displayStatus: Provisioning succeeded
                        level: Info
                      - code: HealthState/available
                        displayStatus: Host available
                        level: Info
                  platformFaultDomain: 1
                  provisioningState: Succeeded
                  provisioningTime: 2019-06-27T01:02:38.3138469+00:00
                  virtualMachines:
                    - id: /subscriptions/subId/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/vm1
                sku:
                  name: DSv3-Type1
                tags:
                  department: HR
    patch:
      description: Update an dedicated host .
      operationId: DedicatedHosts_Update
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the dedicated host group.
          in: path
          name: hostGroupName
          required: true
          type: string
        - description: The name of the dedicated host .
          in: path
          name: hostName
          required: true
          type: string
        - description: Parameters supplied to the Update Dedicated Host operation.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/DedicatedHostUpdate"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/DedicatedHost"
      tags:
        - DedicatedHosts
      x-ms-long-running-operation: true
    put:
      description: Create or update a dedicated host .
      operationId: DedicatedHosts_CreateOrUpdate
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the dedicated host group.
          in: path
          name: hostGroupName
          required: true
          type: string
        - description: The name of the dedicated host .
          in: path
          name: hostName
          required: true
          type: string
        - description: Parameters supplied to the Create Dedicated Host.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/DedicatedHost"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/DedicatedHost"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/DedicatedHost"
      tags:
        - DedicatedHosts
      x-ms-examples:
        Create or update a dedicated host .:
          parameters:
            api-version: 2018-10-01
            hostGroupName: myDedicatedHostGroup
            hostName: myDedicatedHost
            parameters:
              location: westus
              properties:
                platformFaultDomain: 1
              sku:
                name: DSv3-Type1
              tags:
                department: HR
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/HostGroups/myDedicatedHostGroup/hosts/myDedicatedHost
                location: westus
                name: myDedicatedHost
                properties:
                  autoReplaceOnFailure: false
                  hostId: "{GUID}"
                  licenseType: Windows_Server_Hybrid
                  platformFaultDomain: 1
                sku:
                  name: DSv3-Type1
                tags:
                  department: HR
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/HostGroups/myDedicatedHostGroup/hosts/myDedicatedHost
                location: westus
                name: myDedicatedHost
                properties:
                  autoReplaceOnFailure: true
                  hostId: "{GUID}"
                  platformFaultDomain: 1
                sku:
                  name: DSv3-Type1
                tags:
                  department: HR
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/images":
    get:
      description: Gets the list of images under a resource group.
      operationId: Images_ListByResourceGroup
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ImageListResult"
      tags:
        - Images
      x-ms-examples:
        List all virtual machine images in a resource group.:
          parameters:
            api-version: 2019-03-01
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/myImage
                    location: West US
                    name: myImage
                    properties:
                      provisioningState: created
                      storageProfile:
                        dataDisks:
                          - blobUri: https://mystorageaccount.blob.core.windows.net/dataimages/dataimage.vhd
                            lun: 1
                            managedDisk:
                              id: subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk2
                            snapshot:
                              id: subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot2
                            storageAccountType: Standard_LRS
                        osDisk:
                          blobUri: https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd
                          managedDisk:
                            id: subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk1
                          osState: Generalized
                          osType: Windows
                          snapshot:
                            id: subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot1
                          storageAccountType: Standard_LRS
                    type: Microsoft.Compute/images
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/images/{imageName}":
    delete:
      description: Deletes an Image.
      operationId: Images_Delete
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the image.
          in: path
          name: imageName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        "204":
          description: No Content
      tags:
        - Images
      x-ms-long-running-operation: true
    get:
      description: Gets an image.
      operationId: Images_Get
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the image.
          in: path
          name: imageName
          required: true
          type: string
        - description: The expand expression to apply on the operation.
          in: query
          name: $expand
          required: false
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Image"
      tags:
        - Images
      x-ms-examples:
        Get information about a virtual machine image.:
          parameters:
            api-version: 2019-03-01
            imageName: myImage
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/myImage
                location: West US
                name: myImage
                properties:
                  provisioningState: created
                  storageProfile:
                    dataDisks:
                      - blobUri: https://mystorageaccount.blob.core.windows.net/dataimages/dataimage.vhd
                        lun: 1
                        managedDisk:
                          id: subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk2
                        snapshot:
                          id: subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot2
                        storageAccountType: Standard_LRS
                    osDisk:
                      blobUri: https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd
                      diskSizeGB: 20
                      managedDisk:
                        id: subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk1
                      osState: Generalized
                      osType: Windows
                      snapshot:
                        id: subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot1
                      storageAccountType: Standard_LRS
                type: Microsoft.Compute/images
    patch:
      description: Update an image.
      operationId: Images_Update
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the image.
          in: path
          name: imageName
          required: true
          type: string
        - description: Parameters supplied to the Update Image operation.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/ImageUpdate"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Image"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/Image"
      tags:
        - Images
      x-ms-long-running-operation: true
    put:
      description: Create or update an image.
      operationId: Images_CreateOrUpdate
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the image.
          in: path
          name: imageName
          required: true
          type: string
        - description: Parameters supplied to the Create Image operation.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/Image"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Image"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/Image"
      tags:
        - Images
      x-ms-examples:
        Create a virtual machine image from a blob.:
          parameters:
            api-version: 2019-03-01
            imageName: myImage
            parameters:
              location: West US
              properties:
                storageProfile:
                  osDisk:
                    blobUri: https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd
                    osState: Generalized
                    osType: Linux
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/disk/providers/Microsoft.Compute/images/myImage
                location: westus
                name: myImage
                properties:
                  provisioningState: Creating
                  storageProfile:
                    dataDisks: []
                    osDisk:
                      blobUri: https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd
                      caching: ReadWrite
                      osState: Generalized
                      osType: Linux
                type: Microsoft.Compute/images
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/disk/providers/Microsoft.Compute/images/myImage
                location: westus
                name: myImage
                properties:
                  provisioningState: Creating
                  storageProfile:
                    dataDisks: []
                    osDisk:
                      blobUri: https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd
                      caching: ReadWrite
                      osState: Generalized
                      osType: Linux
                type: Microsoft.Compute/images
        Create a virtual machine image from a managed disk.:
          parameters:
            api-version: 2019-03-01
            imageName: myImage
            parameters:
              location: West US
              properties:
                storageProfile:
                  osDisk:
                    managedDisk:
                      id: subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk
                    osState: Generalized
                    osType: Linux
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/disk/providers/Microsoft.Compute/images/myImage
                location: westus
                name: myImage
                properties:
                  provisioningState: Creating
                  storageProfile:
                    dataDisks: []
                    osDisk:
                      caching: ReadWrite
                      managedDisk:
                        id: subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk
                      osState: Generalized
                      osType: Linux
                type: Microsoft.Compute/images
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/disk/providers/Microsoft.Compute/images/myImage
                location: westus
                name: myImage
                properties:
                  provisioningState: Creating
                  storageProfile:
                    dataDisks: []
                    osDisk:
                      caching: ReadWrite
                      managedDisk:
                        id: subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk
                      osState: Generalized
                      osType: Linux
                type: Microsoft.Compute/images
        Create a virtual machine image from a snapshot.:
          parameters:
            api-version: 2019-03-01
            imageName: myImage
            parameters:
              location: West US
              properties:
                storageProfile:
                  osDisk:
                    osState: Generalized
                    osType: Linux
                    snapshot:
                      id: subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/disk/providers/Microsoft.Compute/images/myImage
                location: westus
                name: myImage
                properties:
                  provisioningState: Creating
                  storageProfile:
                    dataDisks: []
                    osDisk:
                      caching: ReadWrite
                      osState: Generalized
                      osType: Linux
                      snapshot:
                        id: subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot
                type: Microsoft.Compute/images
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/disk/providers/Microsoft.Compute/images/myImage
                location: westus
                name: myImage
                properties:
                  provisioningState: Creating
                  storageProfile:
                    dataDisks: []
                    osDisk:
                      caching: ReadWrite
                      osState: Generalized
                      osType: Linux
                      snapshot:
                        id: subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot
                type: Microsoft.Compute/images
        Create a virtual machine image from an existing virtual machine.:
          parameters:
            api-version: 2019-03-01
            imageName: myImage
            parameters:
              location: West US
              properties:
                sourceVirtualMachine:
                  id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/disk/providers/Microsoft.Compute/images/myImage
                location: westus
                name: myImage
                properties:
                  provisioningState: Creating
                  sourceVirtualMachine:
                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
                  storageProfile:
                    dataDisks: []
                    osDisk:
                      caching: ReadWrite
                      managedDisk:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myVM_OsDisk_1_6dc293b7d811433196903acf92665022
                      osState: Generalized
                      osType: Linux
                type: Microsoft.Compute/images
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/disk/providers/Microsoft.Compute/images/myImage
                location: westus
                name: myImage
                properties:
                  provisioningState: Creating
                  sourceVirtualMachine:
                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
                  storageProfile:
                    dataDisks: []
                    osDisk:
                      caching: ReadWrite
                      managedDisk:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myVM_OsDisk_1_6dc293b7d811433196903acf92665022
                      osState: Generalized
                      osType: Linux
                type: Microsoft.Compute/images
        Create a virtual machine image that includes a data disk from a blob.:
          parameters:
            api-version: 2019-03-01
            imageName: myImage
            parameters:
              location: West US
              properties:
                storageProfile:
                  dataDisks:
                    - blobUri: https://mystorageaccount.blob.core.windows.net/dataimages/dataimage.vhd
                      lun: 1
                  osDisk:
                    blobUri: https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd
                    osState: Generalized
                    osType: Linux
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/disk/providers/Microsoft.Compute/images/myImage
                location: westus
                name: myImage
                properties:
                  provisioningState: Creating
                  storageProfile:
                    dataDisks:
                      - blobUri: https://mystorageaccount.blob.core.windows.net/dataimages/dataimage.vhd
                        lun: 1
                    osDisk:
                      blobUri: https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd
                      caching: ReadWrite
                      osState: Generalized
                      osType: Linux
                type: Microsoft.Compute/images
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/disk/providers/Microsoft.Compute/images/myImage
                location: westus
                name: myImage
                properties:
                  provisioningState: Creating
                  storageProfile:
                    dataDisks:
                      - blobUri: https://mystorageaccount.blob.core.windows.net/dataimages/dataimage.vhd
                        lun: 1
                    osDisk:
                      blobUri: https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd
                      caching: ReadWrite
                      osState: Generalized
                      osType: Linux
                type: Microsoft.Compute/images
        Create a virtual machine image that includes a data disk from a managed disk.:
          parameters:
            api-version: 2019-03-01
            imageName: myImage
            parameters:
              location: West US
              properties:
                storageProfile:
                  dataDisks:
                    - lun: 1
                      managedDisk:
                        id: subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk2
                  osDisk:
                    managedDisk:
                      id: subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk
                    osState: Generalized
                    osType: Linux
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/disk/providers/Microsoft.Compute/images/myImage
                location: westus
                name: myImage
                properties:
                  provisioningState: Creating
                  storageProfile:
                    dataDisks:
                      - lun: 1
                        managedDisk:
                          id: subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk2
                    osDisk:
                      caching: ReadWrite
                      managedDisk:
                        id: subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk
                      osState: Generalized
                      osType: Linux
                type: Microsoft.Compute/images
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/disk/providers/Microsoft.Compute/images/myImage
                location: westus
                name: myImage
                properties:
                  provisioningState: Creating
                  storageProfile:
                    dataDisks:
                      - lun: 1
                        managedDisk:
                          id: subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk2
                    osDisk:
                      caching: ReadWrite
                      managedDisk:
                        id: subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myManagedDisk
                      osState: Generalized
                      osType: Linux
                type: Microsoft.Compute/images
        Create a virtual machine image that includes a data disk from a snapshot.:
          parameters:
            api-version: 2019-03-01
            imageName: myImage
            parameters:
              location: West US
              properties:
                storageProfile:
                  dataDisks:
                    - lun: 1
                      snapshot:
                        id: subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot2
                  osDisk:
                    osState: Generalized
                    osType: Linux
                    snapshot:
                      id: subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/disk/providers/Microsoft.Compute/images/myImage
                location: westus
                name: myImage
                properties:
                  provisioningState: Creating
                  storageProfile:
                    dataDisks:
                      - lun: 1
                        snapshot:
                          id: subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot2
                    osDisk:
                      caching: ReadWrite
                      osState: Generalized
                      osType: Linux
                      snapshot:
                        id: subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot
                type: Microsoft.Compute/images
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/disk/providers/Microsoft.Compute/images/myImage
                location: westus
                name: myImage
                properties:
                  provisioningState: Creating
                  storageProfile:
                    dataDisks:
                      - lun: 1
                        snapshot:
                          id: subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot2
                    osDisk:
                      caching: ReadWrite
                      osState: Generalized
                      osType: Linux
                      snapshot:
                        id: subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot
                type: Microsoft.Compute/images
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/proximityPlacementGroups":
    get:
      description: Lists all proximity placement groups in a resource group.
      operationId: ProximityPlacementGroups_ListByResourceGroup
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ProximityPlacementGroupListResult"
      tags:
        - ProximityPlacementGroups
      x-ms-examples:
        Create a proximity placement group.:
          parameters:
            api-version: 2019-03-01
            parameters: {}
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                nextLink: string
                value:
                  - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/proximityPlacementGroups/myProximityPlacementGroup
                    location: westus
                    name: myProximityPlacementGroup
                    properties:
                      availabilitySets:
                        - id: string
                      proximityPlacementGroupType: Standard
                      virtualMachineScaleSets:
                        - id: string
                      virtualMachines:
                        - id: string
                    type: Microsoft.Compute/proximityPlacementGroups
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/proximityPlacementGroups/{proximityPlacementGroupName}":
    delete:
      description: Delete a proximity placement group.
      operationId: ProximityPlacementGroups_Delete
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the proximity placement group.
          in: path
          name: proximityPlacementGroupName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
      tags:
        - ProximityPlacementGroups
      x-ms-examples:
        Create a proximity placement group.:
          parameters:
            api-version: 2019-03-01
            parameters: {}
            proximityPlacementGroupName: myProximityPlacementGroup
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200": {}
    get:
      description: Retrieves information about a proximity placement group .
      operationId: ProximityPlacementGroups_Get
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the proximity placement group.
          in: path
          name: proximityPlacementGroupName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ProximityPlacementGroup"
      tags:
        - ProximityPlacementGroups
      x-ms-examples:
        Create a proximity placement group.:
          parameters:
            api-version: 2019-03-01
            parameters: {}
            proximityPlacementGroupName: myProximityPlacementGroup
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/proximityPlacementGroups/myProximityPlacementGroup
                location: westus
                name: myProximityPlacementGroup
                properties:
                  availabilitySets:
                    - id: string
                  proximityPlacementGroupType: Standard
                  virtualMachineScaleSets:
                    - id: string
                  virtualMachines:
                    - id: string
                type: Microsoft.Compute/proximityPlacementGroups
    patch:
      description: Update a proximity placement group.
      operationId: ProximityPlacementGroups_Update
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the proximity placement group.
          in: path
          name: proximityPlacementGroupName
          required: true
          type: string
        - description: Parameters supplied to the Update Proximity Placement Group operation.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/ProximityPlacementGroupUpdate"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ProximityPlacementGroup"
      tags:
        - ProximityPlacementGroups
      x-ms-examples:
        Create a proximity placement group.:
          parameters:
            api-version: 2019-03-01
            parameters:
              tags:
                additionalProp1: string
            proximityPlacementGroupName: myProximityPlacementGroup
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/proximityPlacementGroups/myProximityPlacementGroup
                location: westus
                name: myProximityPlacementGroup
                properties:
                  proximityPlacementGroupType: Standard
                type: Microsoft.Compute/proximityPlacementGroups
    put:
      description: Create or update a proximity placement group.
      operationId: ProximityPlacementGroups_CreateOrUpdate
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the proximity placement group.
          in: path
          name: proximityPlacementGroupName
          required: true
          type: string
        - description: Parameters supplied to the Create Proximity Placement Group operation.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/ProximityPlacementGroup"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ProximityPlacementGroup"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/ProximityPlacementGroup"
      tags:
        - ProximityPlacementGroups
      x-ms-examples:
        Create or Update a proximity placement group.:
          parameters:
            api-version: 2019-03-01
            parameters:
              location: westus
              properties:
                proximityPlacementGroupType: Standard
            proximityPlacementGroupName: myProximityPlacementGroup
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/proximityPlacementGroups/myProximityPlacementGroup
                location: westus
                name: myProximityPlacementGroup
                properties:
                  proximityPlacementGroupType: Standard
                type: Microsoft.Compute/proximityPlacementGroups
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/proximityPlacementGroups/myProximityPlacementGroup
                location: westus
                name: myProximityPlacementGroup
                properties:
                  proximityPlacementGroupType: Standard
                type: Microsoft.Compute/proximityPlacementGroups
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets":
    get:
      description: Gets a list of all VM scale sets under a resource group.
      operationId: VirtualMachineScaleSets_List
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetListResult"
      tags:
        - VirtualMachineScaleSets
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{virtualMachineScaleSetName}/virtualMachines":
    get:
      description: Gets a list of all virtual machines in a VM scale sets.
      operationId: VirtualMachineScaleSetVMs_List
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: virtualMachineScaleSetName
          required: true
          type: string
        - description: The filter to apply to the operation.
          in: query
          name: $filter
          required: false
          type: string
        - description: The list parameters.
          in: query
          name: $select
          required: false
          type: string
        - description: The expand expression to apply to the operation.
          in: query
          name: $expand
          required: false
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetVMListResult"
      tags:
        - VirtualMachineScaleSetVMs
      x-ms-odata: "#/definitions/VirtualMachineScaleSetVM"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}":
    delete:
      description: Deletes a VM scale set.
      operationId: VirtualMachineScaleSets_Delete
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        "204":
          description: No Content
      tags:
        - VirtualMachineScaleSets
      x-ms-long-running-operation: true
    get:
      description: Display information about a virtual machine scale set.
      operationId: VirtualMachineScaleSets_Get
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineScaleSet"
      tags:
        - VirtualMachineScaleSets
    patch:
      description: Update a VM scale set.
      operationId: VirtualMachineScaleSets_Update
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set to create or update.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: The scale set object.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetUpdate"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineScaleSet"
      tags:
        - VirtualMachineScaleSets
      x-ms-long-running-operation: true
    put:
      description: Create or update a VM scale set.
      operationId: VirtualMachineScaleSets_CreateOrUpdate
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set to create or update.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: The scale set object.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/VirtualMachineScaleSet"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineScaleSet"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/VirtualMachineScaleSet"
      tags:
        - VirtualMachineScaleSets
      x-ms-examples:
        Create a custom-image scale set from an unmanaged generalized os image.:
          parameters:
            api-version: 2019-03-01
            parameters:
              location: westus
              properties:
                overprovision: true
                upgradePolicy:
                  mode: Manual
                virtualMachineProfile:
                  networkProfile:
                    networkInterfaceConfigurations:
                      - name: "{vmss-name}"
                        properties:
                          enableIPForwarding: true
                          ipConfigurations:
                            - name: "{vmss-name}"
                              properties:
                                subnet:
                                  id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                          primary: true
                  osProfile:
                    adminPassword: "{your-password}"
                    adminUsername: "{your-username}"
                    computerNamePrefix: "{vmss-name}"
                  storageProfile:
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      image:
                        uri: http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/{existing-generalized-os-image-blob-name}.vhd
                      name: osDisk
              sku:
                capacity: 3
                name: Standard_D1_v2
                tier: Standard
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmScaleSetName: "{vmss-name}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: westus
                name: "{vmss-name}"
                properties:
                  overprovision: true
                  provisioningState: Creating
                  singlePlacementGroup: true
                  uniqueId: d6e9ab29-f8c9-4792-978c-ae2c07b98f17
                  upgradePolicy:
                    mode: Manual
                  virtualMachineProfile:
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      secrets: []
                      windowsConfiguration:
                        enableAutomaticUpdates: true
                        provisionVMAgent: true
                    storageProfile:
                      osDisk:
                        caching: ReadWrite
                        createOption: FromImage
                        image:
                          uri: https://{existing-storage-account-name}.blob.core.windows.net/system/Microsoft.Compute/Images/vhds/{existing-generalized-os-image-blob-name}.vhd
                        name: osDisk
                        osType: Windows
                sku:
                  capacity: 3
                  name: Standard_D1_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: westus
                name: "{vmss-name}"
                properties:
                  overprovision: true
                  provisioningState: Creating
                  singlePlacementGroup: true
                  uniqueId: d6e9ab29-f8c9-4792-978c-ae2c07b98f17
                  upgradePolicy:
                    mode: Manual
                  virtualMachineProfile:
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      secrets: []
                      windowsConfiguration:
                        enableAutomaticUpdates: true
                        provisionVMAgent: true
                    storageProfile:
                      osDisk:
                        caching: ReadWrite
                        createOption: FromImage
                        image:
                          uri: https://{existing-storage-account-name}.blob.core.windows.net/system/Microsoft.Compute/Images/vhds/{existing-generalized-os-image-blob-name}.vhd
                        name: osDisk
                        osType: Windows
                sku:
                  capacity: 3
                  name: Standard_D1_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
        Create a platform-image scale set with unmanaged os disks.:
          parameters:
            api-version: 2019-03-01
            parameters:
              location: westus
              properties:
                overprovision: true
                upgradePolicy:
                  mode: Manual
                virtualMachineProfile:
                  networkProfile:
                    networkInterfaceConfigurations:
                      - name: "{vmss-name}"
                        properties:
                          enableIPForwarding: true
                          ipConfigurations:
                            - name: "{vmss-name}"
                              properties:
                                subnet:
                                  id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                          primary: true
                  osProfile:
                    adminPassword: "{your-password}"
                    adminUsername: "{your-username}"
                    computerNamePrefix: "{vmss-name}"
                  storageProfile:
                    imageReference:
                      offer: WindowsServer
                      publisher: MicrosoftWindowsServer
                      sku: 2016-Datacenter
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      name: osDisk
                      vhdContainers:
                        - http://{existing-storage-account-name-0}.blob.core.windows.net/vhdContainer
                        - http://{existing-storage-account-name-1}.blob.core.windows.net/vhdContainer
                        - http://{existing-storage-account-name-2}.blob.core.windows.net/vhdContainer
                        - http://{existing-storage-account-name-3}.blob.core.windows.net/vhdContainer
                        - http://{existing-storage-account-name-4}.blob.core.windows.net/vhdContainer
              sku:
                capacity: 3
                name: Standard_D1_v2
                tier: Standard
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmScaleSetName: "{vmss-name}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: westus
                name: "{vmss-name}"
                properties:
                  overprovision: true
                  provisioningState: Creating
                  singlePlacementGroup: true
                  uniqueId: 77b7df9a-32fe-45e3-8911-60ac9c9b9c64
                  upgradePolicy:
                    mode: Manual
                  virtualMachineProfile:
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      secrets: []
                      windowsConfiguration:
                        enableAutomaticUpdates: true
                        provisionVMAgent: true
                    storageProfile:
                      imageReference:
                        offer: WindowsServer
                        publisher: MicrosoftWindowsServer
                        sku: 2016-Datacenter
                        version: latest
                      osDisk:
                        caching: ReadWrite
                        createOption: FromImage
                        name: osDisk
                        vhdContainers:
                          - http://{existing-storage-account-name}.blob.core.windows.net/vhds
                sku:
                  capacity: 3
                  name: Standard_D1_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: westus
                name: "{vmss-name}"
                properties:
                  overprovision: true
                  provisioningState: Creating
                  singlePlacementGroup: true
                  uniqueId: 77b7df9a-32fe-45e3-8911-60ac9c9b9c64
                  upgradePolicy:
                    mode: Manual
                  virtualMachineProfile:
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      secrets: []
                      windowsConfiguration:
                        enableAutomaticUpdates: true
                        provisionVMAgent: true
                    storageProfile:
                      imageReference:
                        offer: WindowsServer
                        publisher: MicrosoftWindowsServer
                        sku: 2016-Datacenter
                        version: latest
                      osDisk:
                        caching: ReadWrite
                        createOption: FromImage
                        name: osDisk
                        vhdContainers:
                          - http://{existing-storage-account-name}.blob.core.windows.net/vhds
                sku:
                  capacity: 3
                  name: Standard_D1_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
        Create a scale set from a custom image.:
          parameters:
            api-version: 2019-03-01
            parameters:
              location: westus
              properties:
                overprovision: true
                upgradePolicy:
                  mode: Manual
                virtualMachineProfile:
                  networkProfile:
                    networkInterfaceConfigurations:
                      - name: "{vmss-name}"
                        properties:
                          enableIPForwarding: true
                          ipConfigurations:
                            - name: "{vmss-name}"
                              properties:
                                subnet:
                                  id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                          primary: true
                  osProfile:
                    adminPassword: "{your-password}"
                    adminUsername: "{your-username}"
                    computerNamePrefix: "{vmss-name}"
                  storageProfile:
                    imageReference:
                      id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      managedDisk:
                        storageAccountType: Standard_LRS
              sku:
                capacity: 3
                name: Standard_D1_v2
                tier: Standard
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmScaleSetName: "{vmss-name}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: westus
                name: "{vmss-name}"
                properties:
                  overprovision: true
                  provisioningState: Creating
                  singlePlacementGroup: true
                  uniqueId: afa2afa8-9e49-48fb-9d18-c86323b5d064
                  upgradePolicy:
                    mode: Manual
                  virtualMachineProfile:
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      linuxConfiguration:
                        disablePasswordAuthentication: false
                      secrets: []
                    storageProfile:
                      imageReference:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/nsgcustom
                      osDisk:
                        caching: ReadWrite
                        createOption: FromImage
                        managedDisk:
                          storageAccountType: Standard_LRS
                sku:
                  capacity: 3
                  name: Standard_D1_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: westus
                name: "{vmss-name}"
                properties:
                  overprovision: true
                  provisioningState: Creating
                  singlePlacementGroup: true
                  uniqueId: afa2afa8-9e49-48fb-9d18-c86323b5d064
                  upgradePolicy:
                    mode: Manual
                  virtualMachineProfile:
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      linuxConfiguration:
                        disablePasswordAuthentication: false
                      secrets: []
                    storageProfile:
                      imageReference:
                        id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/nsgcustom
                      osDisk:
                        caching: ReadWrite
                        createOption: FromImage
                        managedDisk:
                          storageAccountType: Standard_LRS
                sku:
                  capacity: 3
                  name: Standard_D1_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
        Create a scale set with a marketplace image plan.:
          parameters:
            api-version: 2019-03-01
            parameters:
              location: westus
              plan:
                name: windows2016
                product: windows-data-science-vm
                publisher: microsoft-ads
              properties:
                overprovision: true
                upgradePolicy:
                  mode: Manual
                virtualMachineProfile:
                  networkProfile:
                    networkInterfaceConfigurations:
                      - name: "{vmss-name}"
                        properties:
                          enableIPForwarding: true
                          ipConfigurations:
                            - name: "{vmss-name}"
                              properties:
                                subnet:
                                  id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                          primary: true
                  osProfile:
                    adminPassword: "{your-password}"
                    adminUsername: "{your-username}"
                    computerNamePrefix: "{vmss-name}"
                  storageProfile:
                    imageReference:
                      offer: windows-data-science-vm
                      publisher: microsoft-ads
                      sku: windows2016
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      managedDisk:
                        storageAccountType: Standard_LRS
              sku:
                capacity: 3
                name: Standard_D1_v2
                tier: Standard
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmScaleSetName: "{vmss-name}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: westus
                name: "{vmss-name}"
                plan:
                  name: standard-data-science-vm
                  product: standard-data-science-vm
                  publisher: microsoft-ads
                properties:
                  overprovision: true
                  provisioningState: Creating
                  singlePlacementGroup: true
                  uniqueId: b9e23088-6ffc-46e0-9e02-b0a6eeef47db
                  upgradePolicy:
                    mode: Manual
                  virtualMachineProfile:
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      secrets: []
                      windowsConfiguration:
                        enableAutomaticUpdates: true
                        provisionVMAgent: true
                    storageProfile:
                      imageReference:
                        offer: standard-data-science-vm
                        publisher: microsoft-ads
                        sku: standard-data-science-vm
                        version: latest
                      osDisk:
                        caching: ReadWrite
                        createOption: FromImage
                        managedDisk:
                          storageAccountType: Standard_LRS
                sku:
                  capacity: 3
                  name: Standard_D1_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: westus
                name: "{vmss-name}"
                plan:
                  name: standard-data-science-vm
                  product: standard-data-science-vm
                  publisher: microsoft-ads
                properties:
                  overprovision: true
                  provisioningState: Creating
                  singlePlacementGroup: true
                  uniqueId: b9e23088-6ffc-46e0-9e02-b0a6eeef47db
                  upgradePolicy:
                    mode: Manual
                  virtualMachineProfile:
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      secrets: []
                      windowsConfiguration:
                        enableAutomaticUpdates: true
                        provisionVMAgent: true
                    storageProfile:
                      imageReference:
                        offer: standard-data-science-vm
                        publisher: microsoft-ads
                        sku: standard-data-science-vm
                        version: latest
                      osDisk:
                        caching: ReadWrite
                        createOption: FromImage
                        managedDisk:
                          storageAccountType: Standard_LRS
                sku:
                  capacity: 3
                  name: Standard_D1_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
        Create a scale set with an azure application gateway.:
          parameters:
            api-version: 2019-03-01
            parameters:
              location: westus
              properties:
                overprovision: true
                upgradePolicy:
                  mode: Manual
                virtualMachineProfile:
                  networkProfile:
                    networkInterfaceConfigurations:
                      - name: "{vmss-name}"
                        properties:
                          enableIPForwarding: true
                          ipConfigurations:
                            - name: "{vmss-name}"
                              properties:
                                applicationGatewayBackendAddressPools:
                                  - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/applicationGateways/{existing-application-gateway-name}/backendAddressPools/{existing-backend-address-pool-name}
                                subnet:
                                  id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                          primary: true
                  osProfile:
                    adminPassword: "{your-password}"
                    adminUsername: "{your-username}"
                    computerNamePrefix: "{vmss-name}"
                  storageProfile:
                    imageReference:
                      offer: WindowsServer
                      publisher: MicrosoftWindowsServer
                      sku: 2016-Datacenter
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      managedDisk:
                        storageAccountType: Standard_LRS
              sku:
                capacity: 3
                name: Standard_D1_v2
                tier: Standard
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmScaleSetName: "{vmss-name}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: westus
                name: "{vmss-name}"
                properties:
                  overprovision: true
                  provisioningState: Creating
                  singlePlacementGroup: true
                  uniqueId: a0134477-b9d9-484b-b0e3-205c1c089ffa
                  upgradePolicy:
                    mode: Manual
                  virtualMachineProfile:
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  applicationGatewayBackendAddressPools:
                                    - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/applicationGateways/nsgExistingAppGw/backendAddressPools/appGatewayBackendPool
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      secrets: []
                      windowsConfiguration:
                        enableAutomaticUpdates: true
                        provisionVMAgent: true
                    storageProfile:
                      imageReference:
                        offer: WindowsServer
                        publisher: MicrosoftWindowsServer
                        sku: 2016-Datacenter
                        version: latest
                      osDisk:
                        caching: ReadWrite
                        createOption: FromImage
                        managedDisk:
                          storageAccountType: Standard_LRS
                sku:
                  capacity: 3
                  name: Standard_D1_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: westus
                name: "{vmss-name}"
                properties:
                  overprovision: true
                  provisioningState: Creating
                  singlePlacementGroup: true
                  uniqueId: a0134477-b9d9-484b-b0e3-205c1c089ffa
                  upgradePolicy:
                    mode: Manual
                  virtualMachineProfile:
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  applicationGatewayBackendAddressPools:
                                    - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/applicationGateways/nsgExistingAppGw/backendAddressPools/appGatewayBackendPool
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      secrets: []
                      windowsConfiguration:
                        enableAutomaticUpdates: true
                        provisionVMAgent: true
                    storageProfile:
                      imageReference:
                        offer: WindowsServer
                        publisher: MicrosoftWindowsServer
                        sku: 2016-Datacenter
                        version: latest
                      osDisk:
                        caching: ReadWrite
                        createOption: FromImage
                        managedDisk:
                          storageAccountType: Standard_LRS
                sku:
                  capacity: 3
                  name: Standard_D1_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
        Create a scale set with an azure load balancer.:
          parameters:
            api-version: 2019-03-01
            parameters:
              location: westus
              properties:
                overprovision: true
                upgradePolicy:
                  mode: Manual
                virtualMachineProfile:
                  networkProfile:
                    networkInterfaceConfigurations:
                      - name: "{vmss-name}"
                        properties:
                          enableIPForwarding: true
                          ipConfigurations:
                            - name: "{vmss-name}"
                              properties:
                                loadBalancerBackendAddressPools:
                                  - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/{existing-load-balancer-name}/backendAddressPools/{existing-backend-address-pool-name}
                                loadBalancerInboundNatPools:
                                  - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/{existing-load-balancer-name}/inboundNatPools/{existing-nat-pool-name}
                                subnet:
                                  id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                          primary: true
                  osProfile:
                    adminPassword: "{your-password}"
                    adminUsername: "{your-username}"
                    computerNamePrefix: "{vmss-name}"
                  storageProfile:
                    imageReference:
                      offer: WindowsServer
                      publisher: MicrosoftWindowsServer
                      sku: 2016-Datacenter
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      managedDisk:
                        storageAccountType: Standard_LRS
              sku:
                capacity: 3
                name: Standard_D1_v2
                tier: Standard
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmScaleSetName: "{vmss-name}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: westus
                name: "{vmss-name}"
                properties:
                  overprovision: true
                  provisioningState: Creating
                  singlePlacementGroup: true
                  uniqueId: ec0b21ca-51ec-414b-9323-f236ffc21479
                  upgradePolicy:
                    mode: Manual
                  virtualMachineProfile:
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  loadBalancerBackendAddressPools:
                                    - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/myLb/backendAddressPools/lbBackendPool
                                  loadBalancerInboundNatPools:
                                    - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/myLb/inboundNatPools/lbNatPool
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      secrets: []
                      windowsConfiguration:
                        enableAutomaticUpdates: true
                        provisionVMAgent: true
                    storageProfile:
                      imageReference:
                        offer: WindowsServer
                        publisher: MicrosoftWindowsServer
                        sku: 2016-Datacenter
                        version: latest
                      osDisk:
                        caching: ReadWrite
                        createOption: FromImage
                        managedDisk:
                          storageAccountType: Standard_LRS
                sku:
                  capacity: 3
                  name: Standard_D1_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: westus
                name: "{vmss-name}"
                properties:
                  overprovision: true
                  provisioningState: Creating
                  singlePlacementGroup: true
                  uniqueId: ec0b21ca-51ec-414b-9323-f236ffc21479
                  upgradePolicy:
                    mode: Manual
                  virtualMachineProfile:
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  loadBalancerBackendAddressPools:
                                    - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/myLb/backendAddressPools/lbBackendPool
                                  loadBalancerInboundNatPools:
                                    - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/myLb/inboundNatPools/lbNatPool
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      secrets: []
                      windowsConfiguration:
                        enableAutomaticUpdates: true
                        provisionVMAgent: true
                    storageProfile:
                      imageReference:
                        offer: WindowsServer
                        publisher: MicrosoftWindowsServer
                        sku: 2016-Datacenter
                        version: latest
                      osDisk:
                        caching: ReadWrite
                        createOption: FromImage
                        managedDisk:
                          storageAccountType: Standard_LRS
                sku:
                  capacity: 3
                  name: Standard_D1_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
        Create a scale set with boot diagnostics.:
          parameters:
            api-version: 2019-03-01
            parameters:
              location: westus
              properties:
                overprovision: true
                upgradePolicy:
                  mode: Manual
                virtualMachineProfile:
                  diagnosticsProfile:
                    bootDiagnostics:
                      enabled: true
                      storageUri: http://{existing-storage-account-name}.blob.core.windows.net
                  networkProfile:
                    networkInterfaceConfigurations:
                      - name: "{vmss-name}"
                        properties:
                          enableIPForwarding: true
                          ipConfigurations:
                            - name: "{vmss-name}"
                              properties:
                                subnet:
                                  id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                          primary: true
                  osProfile:
                    adminPassword: "{your-password}"
                    adminUsername: "{your-username}"
                    computerNamePrefix: "{vmss-name}"
                  storageProfile:
                    imageReference:
                      offer: WindowsServer
                      publisher: MicrosoftWindowsServer
                      sku: 2016-Datacenter
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      managedDisk:
                        storageAccountType: Standard_LRS
              sku:
                capacity: 3
                name: Standard_D1_v2
                tier: Standard
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmScaleSetName: "{vmss-name}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: westus
                name: "{vmss-name}"
                properties:
                  overprovision: true
                  provisioningState: Creating
                  singlePlacementGroup: true
                  uniqueId: d053ec5a-8da6-495f-ab13-38216503c6d7
                  upgradePolicy:
                    mode: Manual
                  virtualMachineProfile:
                    diagnosticsProfile:
                      bootDiagnostics:
                        enabled: true
                        storageUri: http://nsgdiagnostic.blob.core.windows.net
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      secrets: []
                      windowsConfiguration:
                        enableAutomaticUpdates: true
                        provisionVMAgent: true
                    storageProfile:
                      imageReference:
                        offer: WindowsServer
                        publisher: MicrosoftWindowsServer
                        sku: 2016-Datacenter
                        version: latest
                      osDisk:
                        caching: ReadWrite
                        createOption: FromImage
                        managedDisk:
                          storageAccountType: Standard_LRS
                sku:
                  capacity: 3
                  name: Standard_D1_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: westus
                name: "{vmss-name}"
                properties:
                  overprovision: true
                  provisioningState: Creating
                  singlePlacementGroup: true
                  uniqueId: d053ec5a-8da6-495f-ab13-38216503c6d7
                  upgradePolicy:
                    mode: Manual
                  virtualMachineProfile:
                    diagnosticsProfile:
                      bootDiagnostics:
                        enabled: true
                        storageUri: http://nsgdiagnostic.blob.core.windows.net
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      secrets: []
                      windowsConfiguration:
                        enableAutomaticUpdates: true
                        provisionVMAgent: true
                    storageProfile:
                      imageReference:
                        offer: WindowsServer
                        publisher: MicrosoftWindowsServer
                        sku: 2016-Datacenter
                        version: latest
                      osDisk:
                        caching: ReadWrite
                        createOption: FromImage
                        managedDisk:
                          storageAccountType: Standard_LRS
                sku:
                  capacity: 3
                  name: Standard_D1_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
        Create a scale set with empty data disks on each vm.:
          parameters:
            api-version: 2019-03-01
            parameters:
              location: westus
              properties:
                overprovision: true
                upgradePolicy:
                  mode: Manual
                virtualMachineProfile:
                  networkProfile:
                    networkInterfaceConfigurations:
                      - name: "{vmss-name}"
                        properties:
                          enableIPForwarding: true
                          ipConfigurations:
                            - name: "{vmss-name}"
                              properties:
                                subnet:
                                  id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                          primary: true
                  osProfile:
                    adminPassword: "{your-password}"
                    adminUsername: "{your-username}"
                    computerNamePrefix: "{vmss-name}"
                  storageProfile:
                    dataDisks:
                      - createOption: Empty
                        diskSizeGB: 1023
                        lun: 0
                      - createOption: Empty
                        diskSizeGB: 1023
                        lun: 1
                    imageReference:
                      offer: WindowsServer
                      publisher: MicrosoftWindowsServer
                      sku: 2016-Datacenter
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      diskSizeGB: 512
                      managedDisk:
                        storageAccountType: Standard_LRS
              sku:
                capacity: 3
                name: Standard_D2_v2
                tier: Standard
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmScaleSetName: "{vmss-name}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: westus
                name: "{vmss-name}"
                properties:
                  overprovision: true
                  provisioningState: Succeeded
                  singlePlacementGroup: true
                  uniqueId: 8042c376-4690-4c47-9fa2-fbdad70e32fa
                  upgradePolicy:
                    mode: Manual
                  virtualMachineProfile:
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      secrets: []
                      windowsConfiguration:
                        enableAutomaticUpdates: true
                        provisionVMAgent: true
                    storageProfile:
                      dataDisks:
                        - caching: None
                          createOption: Empty
                          diskSizeGB: 1023
                          lun: 0
                          managedDisk:
                            storageAccountType: Standard_LRS
                        - caching: None
                          createOption: Empty
                          diskSizeGB: 1023
                          lun: 1
                          managedDisk:
                            storageAccountType: Standard_LRS
                      imageReference:
                        offer: WindowsServer
                        publisher: MicrosoftWindowsServer
                        sku: 2016-Datacenter
                        version: latest
                      osDisk:
                        caching: ReadWrite
                        createOption: FromImage
                        diskSizeGB: 512
                        managedDisk:
                          storageAccountType: Standard_LRS
                sku:
                  capacity: 3
                  name: Standard_D2_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: westus
                name: "{vmss-name}"
                properties:
                  overprovision: true
                  provisioningState: Creating
                  singlePlacementGroup: true
                  uniqueId: 8042c376-4690-4c47-9fa2-fbdad70e32fa
                  upgradePolicy:
                    mode: Manual
                  virtualMachineProfile:
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      secrets: []
                      windowsConfiguration:
                        enableAutomaticUpdates: true
                        provisionVMAgent: true
                    storageProfile:
                      dataDisks:
                        - caching: None
                          createOption: Empty
                          diskSizeGB: 1023
                          lun: 0
                          managedDisk:
                            storageAccountType: Standard_LRS
                        - caching: None
                          createOption: Empty
                          diskSizeGB: 1023
                          lun: 1
                          managedDisk:
                            storageAccountType: Standard_LRS
                      imageReference:
                        offer: WindowsServer
                        publisher: MicrosoftWindowsServer
                        sku: 2016-Datacenter
                        version: latest
                      osDisk:
                        caching: ReadWrite
                        createOption: FromImage
                        diskSizeGB: 512
                        managedDisk:
                          storageAccountType: Standard_LRS
                sku:
                  capacity: 3
                  name: Standard_D2_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
        Create a scale set with ephemeral os disks.:
          parameters:
            api-version: 2019-03-01
            parameters:
              location: westus
              plan:
                name: windows2016
                product: windows-data-science-vm
                publisher: microsoft-ads
              properties:
                overprovision: true
                upgradePolicy:
                  mode: Manual
                virtualMachineProfile:
                  networkProfile:
                    networkInterfaceConfigurations:
                      - name: "{vmss-name}"
                        properties:
                          enableIPForwarding: true
                          ipConfigurations:
                            - name: "{vmss-name}"
                              properties:
                                subnet:
                                  id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                          primary: true
                  osProfile:
                    adminPassword: "{your-password}"
                    adminUsername: "{your-username}"
                    computerNamePrefix: "{vmss-name}"
                  storageProfile:
                    imageReference:
                      offer: windows-data-science-vm
                      publisher: microsoft-ads
                      sku: windows2016
                      version: latest
                    osDisk:
                      caching: ReadOnly
                      createOption: FromImage
                      diffDiskSettings:
                        option: Local
                      managedDisk:
                        storageAccountType: Standard_LRS
              sku:
                capacity: 3
                name: Standard_DS1_v2
                tier: Standard
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmScaleSetName: "{vmss-name}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: westus
                name: "{vmss-name}"
                plan:
                  name: standard-data-science-vm
                  product: standard-data-science-vm
                  publisher: microsoft-ads
                properties:
                  overprovision: true
                  provisioningState: Creating
                  singlePlacementGroup: true
                  uniqueId: b9e23088-6ffc-46e0-9e02-b0a6eeef47db
                  upgradePolicy:
                    mode: Manual
                  virtualMachineProfile:
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      secrets: []
                      windowsConfiguration:
                        enableAutomaticUpdates: true
                        provisionVMAgent: true
                    storageProfile:
                      imageReference:
                        offer: standard-data-science-vm
                        publisher: microsoft-ads
                        sku: standard-data-science-vm
                        version: latest
                      osDisk:
                        caching: ReadOnly
                        createOption: FromImage
                        diffDiskSettings:
                          option: Local
                        managedDisk:
                          storageAccountType: Standard_LRS
                sku:
                  capacity: 3
                  name: Standard_DS1_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: westus
                name: "{vmss-name}"
                plan:
                  name: standard-data-science-vm
                  product: standard-data-science-vm
                  publisher: microsoft-ads
                properties:
                  overprovision: true
                  provisioningState: Creating
                  singlePlacementGroup: true
                  uniqueId: b9e23088-6ffc-46e0-9e02-b0a6eeef47db
                  upgradePolicy:
                    mode: Manual
                  virtualMachineProfile:
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      secrets: []
                      windowsConfiguration:
                        enableAutomaticUpdates: true
                        provisionVMAgent: true
                    storageProfile:
                      imageReference:
                        offer: standard-data-science-vm
                        publisher: microsoft-ads
                        sku: standard-data-science-vm
                        version: latest
                      osDisk:
                        caching: ReadOnly
                        createOption: FromImage
                        diffDiskSettings:
                          option: Local
                        managedDisk:
                          storageAccountType: Standard_LRS
                sku:
                  capacity: 3
                  name: Standard_DS1_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
        Create a scale set with password authentication.:
          parameters:
            api-version: 2019-03-01
            parameters:
              location: westus
              properties:
                overprovision: true
                upgradePolicy:
                  mode: Manual
                virtualMachineProfile:
                  networkProfile:
                    networkInterfaceConfigurations:
                      - name: "{vmss-name}"
                        properties:
                          enableIPForwarding: true
                          ipConfigurations:
                            - name: "{vmss-name}"
                              properties:
                                subnet:
                                  id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                          primary: true
                  osProfile:
                    adminPassword: "{your-password}"
                    adminUsername: "{your-username}"
                    computerNamePrefix: "{vmss-name}"
                  storageProfile:
                    imageReference:
                      offer: WindowsServer
                      publisher: MicrosoftWindowsServer
                      sku: 2016-Datacenter
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      managedDisk:
                        storageAccountType: Standard_LRS
              sku:
                capacity: 3
                name: Standard_D1_v2
                tier: Standard
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmScaleSetName: "{vmss-name}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: westus
                name: "{vmss-name}"
                properties:
                  overprovision: true
                  provisioningState: Creating
                  singlePlacementGroup: true
                  uniqueId: ffb27c5c-39a5-4d4e-b307-b32598689813
                  upgradePolicy:
                    mode: Manual
                  virtualMachineProfile:
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      secrets: []
                      windowsConfiguration:
                        enableAutomaticUpdates: true
                        provisionVMAgent: true
                    storageProfile:
                      imageReference:
                        offer: WindowsServer
                        publisher: MicrosoftWindowsServer
                        sku: 2016-Datacenter
                        version: latest
                      osDisk:
                        caching: ReadWrite
                        createOption: FromImage
                        managedDisk:
                          storageAccountType: Standard_LRS
                sku:
                  capacity: 3
                  name: Standard_D1_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: westus
                name: "{vmss-name}"
                properties:
                  overprovision: true
                  provisioningState: Creating
                  singlePlacementGroup: true
                  uniqueId: ffb27c5c-39a5-4d4e-b307-b32598689813
                  upgradePolicy:
                    mode: Manual
                  virtualMachineProfile:
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      secrets: []
                      windowsConfiguration:
                        enableAutomaticUpdates: true
                        provisionVMAgent: true
                    storageProfile:
                      imageReference:
                        offer: WindowsServer
                        publisher: MicrosoftWindowsServer
                        sku: 2016-Datacenter
                        version: latest
                      osDisk:
                        caching: ReadWrite
                        createOption: FromImage
                        managedDisk:
                          storageAccountType: Standard_LRS
                sku:
                  capacity: 3
                  name: Standard_D1_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
        Create a scale set with premium storage.:
          parameters:
            api-version: 2019-03-01
            parameters:
              location: westus
              properties:
                overprovision: true
                upgradePolicy:
                  mode: Manual
                virtualMachineProfile:
                  networkProfile:
                    networkInterfaceConfigurations:
                      - name: "{vmss-name}"
                        properties:
                          enableIPForwarding: true
                          ipConfigurations:
                            - name: "{vmss-name}"
                              properties:
                                subnet:
                                  id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                          primary: true
                  osProfile:
                    adminPassword: "{your-password}"
                    adminUsername: "{your-username}"
                    computerNamePrefix: "{vmss-name}"
                  storageProfile:
                    imageReference:
                      offer: WindowsServer
                      publisher: MicrosoftWindowsServer
                      sku: 2016-Datacenter
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      managedDisk:
                        storageAccountType: Premium_LRS
              sku:
                capacity: 3
                name: Standard_D1_v2
                tier: Standard
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmScaleSetName: "{vmss-name}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: westus
                name: "{vmss-name}"
                properties:
                  overprovision: true
                  provisioningState: Creating
                  singlePlacementGroup: true
                  uniqueId: 19fd38a2-f50a-42c6-9dc7-3f9cf3791225
                  upgradePolicy:
                    mode: Manual
                  virtualMachineProfile:
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      secrets: []
                      windowsConfiguration:
                        enableAutomaticUpdates: true
                        provisionVMAgent: true
                    storageProfile:
                      imageReference:
                        offer: WindowsServer
                        publisher: MicrosoftWindowsServer
                        sku: 2016-Datacenter
                        version: latest
                      osDisk:
                        caching: ReadWrite
                        createOption: FromImage
                        managedDisk:
                          storageAccountType: Premium_LRS
                sku:
                  capacity: 3
                  name: Standard_DS1_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: westus
                name: "{vmss-name}"
                properties:
                  overprovision: true
                  provisioningState: Creating
                  singlePlacementGroup: true
                  uniqueId: 19fd38a2-f50a-42c6-9dc7-3f9cf3791225
                  upgradePolicy:
                    mode: Manual
                  virtualMachineProfile:
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      secrets: []
                      windowsConfiguration:
                        enableAutomaticUpdates: true
                        provisionVMAgent: true
                    storageProfile:
                      imageReference:
                        offer: WindowsServer
                        publisher: MicrosoftWindowsServer
                        sku: 2016-Datacenter
                        version: latest
                      osDisk:
                        caching: ReadWrite
                        createOption: FromImage
                        managedDisk:
                          storageAccountType: Premium_LRS
                sku:
                  capacity: 3
                  name: Standard_DS1_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
        Create a scale set with ssh authentication.:
          parameters:
            api-version: 2019-03-01
            parameters:
              location: westus
              properties:
                overprovision: true
                upgradePolicy:
                  mode: Manual
                virtualMachineProfile:
                  networkProfile:
                    networkInterfaceConfigurations:
                      - name: "{vmss-name}"
                        properties:
                          enableIPForwarding: true
                          ipConfigurations:
                            - name: "{vmss-name}"
                              properties:
                                subnet:
                                  id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                          primary: true
                  osProfile:
                    adminUsername: "{your-username}"
                    computerNamePrefix: "{vmss-name}"
                    linuxConfiguration:
                      disablePasswordAuthentication: true
                      ssh:
                        publicKeys:
                          - keyData: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeClRAk2ipUs/l5voIsDC5q9RI+YSRd1Bvd/O+axgY4WiBzG+4FwJWZm/mLLe5DoOdHQwmU2FrKXZSW4w2sYE70KeWnrFViCOX5MTVvJgPE8ClugNl8RWth/tU849DvM9sT7vFgfVSHcAS2yDRyDlueii+8nF2ym8XWAPltFVCyLHRsyBp5YPqK8JFYIa1eybKsY3hEAxRCA+/7bq8et+Gj3coOsuRmrehav7rE6N12Pb80I6ofa6SM5XNYq4Xk0iYNx7R3kdz0Jj9XgZYWjAHjJmT0gTRoOnt6upOuxK7xI/ykWrllgpXrCPu3Ymz+c+ujaqcxDopnAl2lmf69/J1
                            path: /home/{your-username}/.ssh/authorized_keys
                  storageProfile:
                    imageReference:
                      offer: WindowsServer
                      publisher: MicrosoftWindowsServer
                      sku: 2016-Datacenter
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      managedDisk:
                        storageAccountType: Standard_LRS
              sku:
                capacity: 3
                name: Standard_D1_v2
                tier: Standard
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmScaleSetName: "{vmss-name}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: westus
                name: "{vmss-name}"
                properties:
                  overprovision: true
                  provisioningState: Creating
                  singlePlacementGroup: true
                  uniqueId: fb73af19-0090-467c-9ced-b00bceab1c45
                  upgradePolicy:
                    mode: Manual
                  virtualMachineProfile:
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      linuxConfiguration:
                        disablePasswordAuthentication: true
                        ssh:
                          publicKeys:
                            - keyData: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeClRAk2ipUs/l5voIsDC5q9RI+YSRd1Bvd/O+axgY4WiBzG+4FwJWZm/mLLe5DoOdHQwmU2FrKXZSW4w2sYE70KeWnrFViCOX5MTVvJgPE8ClugNl8RWth/tU849DvM9sT7vFgfVSHcAS2yDRyDlueii+8nF2ym8XWAPltFVCyLHRsyBp5YPqK8JFYIa1eybKsY3hEAxRCA+/7bq8et+Gj3coOsuRmrehav7rE6N12Pb80I6ofa6SM5XNYq4Xk0iYNx7R3kdz0Jj9XgZYWjAHjJmT0gTRoOnt6upOuxK7xI/ykWrllgpXrCPu3Ymz+c+ujaqcxDopnAl2lmf69/J1
                              path: /home/{your-username}/.ssh/authorized_keys
                      secrets: []
                    storageProfile:
                      imageReference:
                        offer: UbuntuServer
                        publisher: Canonical
                        sku: 16.04-LTS
                        version: latest
                      osDisk:
                        caching: ReadWrite
                        createOption: FromImage
                        managedDisk:
                          storageAccountType: Standard_LRS
                sku:
                  capacity: 3
                  name: Standard_D1_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: westus
                name: "{vmss-name}"
                properties:
                  overprovision: true
                  provisioningState: Creating
                  singlePlacementGroup: true
                  uniqueId: fb73af19-0090-467c-9ced-b00bceab1c45
                  upgradePolicy:
                    mode: Manual
                  virtualMachineProfile:
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      linuxConfiguration:
                        disablePasswordAuthentication: true
                        ssh:
                          publicKeys:
                            - keyData: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeClRAk2ipUs/l5voIsDC5q9RI+YSRd1Bvd/O+axgY4WiBzG+4FwJWZm/mLLe5DoOdHQwmU2FrKXZSW4w2sYE70KeWnrFViCOX5MTVvJgPE8ClugNl8RWth/tU849DvM9sT7vFgfVSHcAS2yDRyDlueii+8nF2ym8XWAPltFVCyLHRsyBp5YPqK8JFYIa1eybKsY3hEAxRCA+/7bq8et+Gj3coOsuRmrehav7rE6N12Pb80I6ofa6SM5XNYq4Xk0iYNx7R3kdz0Jj9XgZYWjAHjJmT0gTRoOnt6upOuxK7xI/ykWrllgpXrCPu3Ymz+c+ujaqcxDopnAl2lmf69/J1
                              path: /home/{your-username}/.ssh/authorized_keys
                      secrets: []
                    storageProfile:
                      imageReference:
                        offer: UbuntuServer
                        publisher: Canonical
                        sku: 16.04-LTS
                        version: latest
                      osDisk:
                        caching: ReadWrite
                        createOption: FromImage
                        managedDisk:
                          storageAccountType: Standard_LRS
                sku:
                  capacity: 3
                  name: Standard_D1_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
        Create a scale set with terminate scheduled events enabled.:
          parameters:
            api-version: 2019-03-01
            parameters:
              location: westus
              properties:
                overprovision: true
                upgradePolicy:
                  mode: Manual
                virtualMachineProfile:
                  networkProfile:
                    networkInterfaceConfigurations:
                      - name: "{vmss-name}"
                        properties:
                          enableIPForwarding: true
                          ipConfigurations:
                            - name: "{vmss-name}"
                              properties:
                                subnet:
                                  id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                          primary: true
                  osProfile:
                    adminPassword: "{your-password}"
                    adminUsername: "{your-username}"
                    computerNamePrefix: "{vmss-name}"
                  scheduledEventsProfile:
                    terminateNotificationProfile:
                      enable: true
                      notBeforeTimeout: PT5M
                  storageProfile:
                    imageReference:
                      offer: WindowsServer
                      publisher: MicrosoftWindowsServer
                      sku: 2016-Datacenter
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      managedDisk:
                        storageAccountType: Standard_LRS
              sku:
                capacity: 3
                name: Standard_D1_v2
                tier: Standard
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmScaleSetName: "{vmss-name}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: westus
                name: "{vmss-name}"
                properties:
                  overprovision: true
                  provisioningState: Creating
                  singlePlacementGroup: true
                  uniqueId: d053ec5a-8da6-495f-ab13-38216503c6d7
                  upgradePolicy:
                    mode: Manual
                  virtualMachineProfile:
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      secrets: []
                      windowsConfiguration:
                        enableAutomaticUpdates: true
                        provisionVMAgent: true
                    scheduledEventsProfile:
                      terminateNotificationProfile:
                        enable: true
                        notBeforeTimeout: PT5M
                    storageProfile:
                      imageReference:
                        offer: WindowsServer
                        publisher: MicrosoftWindowsServer
                        sku: 2016-Datacenter
                        version: latest
                      osDisk:
                        caching: ReadWrite
                        createOption: FromImage
                        managedDisk:
                          storageAccountType: Standard_LRS
                sku:
                  capacity: 3
                  name: Standard_D1_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: westus
                name: "{vmss-name}"
                properties:
                  overprovision: true
                  provisioningState: Creating
                  singlePlacementGroup: true
                  uniqueId: d053ec5a-8da6-495f-ab13-38216503c6d7
                  upgradePolicy:
                    mode: Manual
                  virtualMachineProfile:
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      secrets: []
                      windowsConfiguration:
                        enableAutomaticUpdates: true
                        provisionVMAgent: true
                    scheduledEventsProfile:
                      terminateNotificationProfile:
                        enable: true
                        notBeforeTimeout: PT5M
                    storageProfile:
                      imageReference:
                        offer: WindowsServer
                        publisher: MicrosoftWindowsServer
                        sku: 2016-Datacenter
                        version: latest
                      osDisk:
                        caching: ReadWrite
                        createOption: FromImage
                        managedDisk:
                          storageAccountType: Standard_LRS
                sku:
                  capacity: 3
                  name: Standard_D1_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
        Create a scale set with virtual machines in different zones.:
          parameters:
            api-version: 2019-03-01
            parameters:
              location: centralus
              properties:
                overprovision: true
                upgradePolicy:
                  mode: Automatic
                virtualMachineProfile:
                  networkProfile:
                    networkInterfaceConfigurations:
                      - name: "{vmss-name}"
                        properties:
                          enableIPForwarding: true
                          ipConfigurations:
                            - name: "{vmss-name}"
                              properties:
                                subnet:
                                  id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{existing-virtual-network-name}/subnets/{existing-subnet-name}
                          primary: true
                  osProfile:
                    adminPassword: "{your-password}"
                    adminUsername: "{your-username}"
                    computerNamePrefix: "{vmss-name}"
                  storageProfile:
                    dataDisks:
                      - createOption: Empty
                        diskSizeGB: 1023
                        lun: 0
                      - createOption: Empty
                        diskSizeGB: 1023
                        lun: 1
                    imageReference:
                      offer: WindowsServer
                      publisher: MicrosoftWindowsServer
                      sku: 2016-Datacenter
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      diskSizeGB: 512
                      managedDisk:
                        storageAccountType: Standard_LRS
              sku:
                capacity: 2
                name: Standard_A1_v2
                tier: Standard
              zones:
                - "1"
                - "3"
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmScaleSetName: "{vmss-name}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: centralus
                name: "{vmss-name}"
                properties:
                  overprovision: true
                  provisioningState: Succeeded
                  singlePlacementGroup: false
                  uniqueId: 8042c376-4690-4c47-9fa2-fbdad70e32fa
                  upgradePolicy:
                    mode: Automatic
                  virtualMachineProfile:
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      secrets: []
                      windowsConfiguration:
                        enableAutomaticUpdates: true
                        provisionVMAgent: true
                    storageProfile:
                      dataDisks:
                        - caching: None
                          createOption: Empty
                          diskSizeGB: 1023
                          lun: 0
                          managedDisk:
                            storageAccountType: Standard_LRS
                        - caching: None
                          createOption: Empty
                          diskSizeGB: 1023
                          lun: 1
                          managedDisk:
                            storageAccountType: Standard_LRS
                      imageReference:
                        offer: WindowsServer
                        publisher: MicrosoftWindowsServer
                        sku: 2016-Datacenter
                        version: latest
                      osDisk:
                        caching: ReadWrite
                        createOption: FromImage
                        diskSizeGB: 512
                        managedDisk:
                          storageAccountType: Standard_LRS
                  zoneBalance: false
                sku:
                  capacity: 2
                  name: Standard_A1_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
                zones:
                  - "1"
                  - "3"
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}
                location: centralus
                name: "{vmss-name}"
                properties:
                  overprovision: true
                  provisioningState: Creating
                  singlePlacementGroup: false
                  uniqueId: 8042c376-4690-4c47-9fa2-fbdad70e32fa
                  upgradePolicy:
                    mode: Automatic
                  virtualMachineProfile:
                    networkProfile:
                      networkInterfaceConfigurations:
                        - name: "{vmss-name}"
                          properties:
                            dnsSettings:
                              dnsServers: []
                            enableAcceleratedNetworking: false
                            enableIPForwarding: true
                            ipConfigurations:
                              - name: "{vmss-name}"
                                properties:
                                  privateIPAddressVersion: IPv4
                                  subnet:
                                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/nsgExistingVnet/subnets/nsgExistingSubnet
                            primary: true
                    osProfile:
                      adminUsername: "{your-username}"
                      computerNamePrefix: "{vmss-name}"
                      secrets: []
                      windowsConfiguration:
                        enableAutomaticUpdates: true
                        provisionVMAgent: true
                    storageProfile:
                      dataDisks:
                        - caching: None
                          createOption: Empty
                          diskSizeGB: 1023
                          lun: 0
                          managedDisk:
                            storageAccountType: Standard_LRS
                        - caching: None
                          createOption: Empty
                          diskSizeGB: 1023
                          lun: 1
                          managedDisk:
                            storageAccountType: Standard_LRS
                      imageReference:
                        offer: WindowsServer
                        publisher: MicrosoftWindowsServer
                        sku: 2016-Datacenter
                        version: latest
                      osDisk:
                        caching: ReadWrite
                        createOption: FromImage
                        diskSizeGB: 512
                        managedDisk:
                          storageAccountType: Standard_LRS
                  zoneBalance: false
                sku:
                  capacity: 2
                  name: Standard_A1_v2
                  tier: Standard
                type: Microsoft.Compute/virtualMachineScaleSets
                zones:
                  - "1"
                  - "3"
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/convertToSinglePlacementGroup":
    post:
      description: Converts SinglePlacementGroup property to false for a existing virtual machine scale set.
      operationId: VirtualMachineScaleSets_ConvertToSinglePlacementGroup
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual machine scale set to create or update.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: The input object for ConvertToSinglePlacementGroup API.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/VMScaleSetConvertToSinglePlacementGroupInput"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
      tags:
        - VirtualMachineScaleSets
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/deallocate":
    post:
      description: 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.
      operationId: VirtualMachineScaleSets_Deallocate
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: A list of virtual machine instance IDs from the VM scale set.
          in: body
          name: vmInstanceIDs
          required: false
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetVMInstanceIDs"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachineScaleSets
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/delete":
    post:
      description: Deletes virtual machines in a VM scale set.
      operationId: VirtualMachineScaleSets_DeleteInstances
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: A list of virtual machine instance IDs from the VM scale set.
          in: body
          name: vmInstanceIDs
          required: true
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetVMInstanceRequiredIDs"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachineScaleSets
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/extensionRollingUpgrade":
    post:
      description: 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.
      operationId: VirtualMachineScaleSetRollingUpgrades_StartExtensionUpgrade
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachineScaleSetRollingUpgrades
      x-ms-examples:
        Start an extension rolling upgrade.:
          parameters:
            api-version: 2019-03-01
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmScaleSetName: "{vmss-name}"
          responses:
            "200": {}
            "202": {}
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/extensions":
    get:
      description: Gets a list of all extensions in a VM scale set.
      operationId: VirtualMachineScaleSetExtensions_List
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set containing the extension.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetExtensionListResult"
      tags:
        - VirtualMachineScaleSetExtensions
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/extensions/{vmssExtensionName}":
    delete:
      description: The operation to delete the extension.
      operationId: VirtualMachineScaleSetExtensions_Delete
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set where the extension should be deleted.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: The name of the VM scale set extension.
          in: path
          name: vmssExtensionName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        "204":
          description: No Content
      tags:
        - VirtualMachineScaleSetExtensions
      x-ms-long-running-operation: true
    get:
      description: The operation to get the extension.
      operationId: VirtualMachineScaleSetExtensions_Get
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set containing the extension.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: The name of the VM scale set extension.
          in: path
          name: vmssExtensionName
          required: true
          type: string
        - description: The expand expression to apply on the operation.
          in: query
          name: $expand
          required: false
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetExtension"
      tags:
        - VirtualMachineScaleSetExtensions
    put:
      description: The operation to create or update an extension.
      operationId: VirtualMachineScaleSetExtensions_CreateOrUpdate
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set where the extension should be create or updated.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: The name of the VM scale set extension.
          in: path
          name: vmssExtensionName
          required: true
          type: string
        - description: Parameters supplied to the Create VM scale set Extension operation.
          in: body
          name: extensionParameters
          required: true
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetExtension"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetExtension"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetExtension"
      tags:
        - VirtualMachineScaleSetExtensions
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/forceRecoveryServiceFabricPlatformUpdateDomainWalk":
    post:
      description: Manual platform update domain walk to update virtual machines in a service fabric virtual machine scale set.
      operationId: VirtualMachineScaleSets_ForceRecoveryServiceFabricPlatformUpdateDomainWalk
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
        - description: The platform update domain for which a manual recovery walk is requested
          in: query
          name: platformUpdateDomain
          required: true
          type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/RecoveryWalkResponse"
      tags:
        - VirtualMachineScaleSets
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/instanceView":
    get:
      description: Gets the status of a VM scale set instance.
      operationId: VirtualMachineScaleSets_GetInstanceView
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetInstanceView"
      tags:
        - VirtualMachineScaleSets
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/manualupgrade":
    post:
      description: Upgrades one or more virtual machines to the latest SKU set in the VM scale set model.
      operationId: VirtualMachineScaleSets_UpdateInstances
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: A list of virtual machine instance IDs from the VM scale set.
          in: body
          name: vmInstanceIDs
          required: true
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetVMInstanceRequiredIDs"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachineScaleSets
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/osRollingUpgrade":
    post:
      description: 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.
      operationId: VirtualMachineScaleSetRollingUpgrades_StartOSUpgrade
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachineScaleSetRollingUpgrades
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/osUpgradeHistory":
    get:
      description: Gets list of OS upgrades on a VM scale set instance.
      operationId: VirtualMachineScaleSets_GetOSUpgradeHistory
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetListOSUpgradeHistory"
      tags:
        - VirtualMachineScaleSets
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/performMaintenance":
    post:
      description: "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"
      operationId: VirtualMachineScaleSets_PerformMaintenance
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: A list of virtual machine instance IDs from the VM scale set.
          in: body
          name: vmInstanceIDs
          required: false
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetVMInstanceIDs"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachineScaleSets
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/poweroff":
    post:
      description: 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.
      operationId: VirtualMachineScaleSets_PowerOff
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: A list of virtual machine instance IDs from the VM scale set.
          in: body
          name: vmInstanceIDs
          required: false
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetVMInstanceIDs"
        - default: false
          description: 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
          in: query
          name: skipShutdown
          required: false
          type: boolean
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachineScaleSets
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/redeploy":
    post:
      description: Shuts down all the virtual machines in the virtual machine scale set, moves them to a new node, and powers them back on.
      operationId: VirtualMachineScaleSets_Redeploy
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: A list of virtual machine instance IDs from the VM scale set.
          in: body
          name: vmInstanceIDs
          required: false
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetVMInstanceIDs"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachineScaleSets
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/reimage":
    post:
      description: 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.
      operationId: VirtualMachineScaleSets_Reimage
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: Parameters for Reimaging VM ScaleSet.
          in: body
          name: vmScaleSetReimageInput
          required: false
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetReimageParameters"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachineScaleSets
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/reimageall":
    post:
      description: Reimages all the disks ( including data disks ) in the virtual machines in a VM scale set. This operation is only supported for managed disks.
      operationId: VirtualMachineScaleSets_ReimageAll
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: A list of virtual machine instance IDs from the VM scale set.
          in: body
          name: vmInstanceIDs
          required: false
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetVMInstanceIDs"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachineScaleSets
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/restart":
    post:
      description: Restarts one or more virtual machines in a VM scale set.
      operationId: VirtualMachineScaleSets_Restart
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: A list of virtual machine instance IDs from the VM scale set.
          in: body
          name: vmInstanceIDs
          required: false
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetVMInstanceIDs"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachineScaleSets
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/rollingUpgrades/cancel":
    post:
      description: Cancels the current virtual machine scale set rolling upgrade.
      operationId: VirtualMachineScaleSetRollingUpgrades_Cancel
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachineScaleSetRollingUpgrades
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/rollingUpgrades/latest":
    get:
      description: Gets the status of the latest virtual machine scale set rolling upgrade.
      operationId: VirtualMachineScaleSetRollingUpgrades_GetLatest
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/RollingUpgradeStatusInfo"
      tags:
        - VirtualMachineScaleSetRollingUpgrades
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/skus":
    get:
      description: Gets a list of SKUs available for your VM scale set, including the minimum and maximum VM instances allowed for each SKU.
      operationId: VirtualMachineScaleSets_ListSkus
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetListSkusResult"
      tags:
        - VirtualMachineScaleSets
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/start":
    post:
      description: Starts one or more virtual machines in a VM scale set.
      operationId: VirtualMachineScaleSets_Start
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: A list of virtual machine instance IDs from the VM scale set.
          in: body
          name: vmInstanceIDs
          required: false
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetVMInstanceIDs"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachineScaleSets
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}":
    delete:
      description: Deletes a virtual machine from a VM scale set.
      operationId: VirtualMachineScaleSetVMs_Delete
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: The instance ID of the virtual machine.
          in: path
          name: instanceId
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        "204":
          description: No Content
      tags:
        - VirtualMachineScaleSetVMs
      x-ms-long-running-operation: true
    get:
      description: Gets a virtual machine from a VM scale set.
      operationId: VirtualMachineScaleSetVMs_Get
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: The instance ID of the virtual machine.
          in: path
          name: instanceId
          required: true
          type: string
        - description: The expand expression to apply on the operation.
          enum:
            - instanceView
          in: query
          name: $expand
          required: false
          type: string
          x-ms-enum:
            modelAsString: false
            name: InstanceViewTypes
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetVM"
      tags:
        - VirtualMachineScaleSetVMs
    put:
      description: Updates a virtual machine of a VM scale set.
      operationId: VirtualMachineScaleSetVMs_Update
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set where the extension should be create or updated.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: The instance ID of the virtual machine.
          in: path
          name: instanceId
          required: true
          type: string
        - description: Parameters supplied to the Update Virtual Machine Scale Sets VM operation.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetVM"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetVM"
        "202":
          description: Accepted
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetVM"
      tags:
        - VirtualMachineScaleSetVMs
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/deallocate":
    post:
      description: 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.
      operationId: VirtualMachineScaleSetVMs_Deallocate
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: The instance ID of the virtual machine.
          in: path
          name: instanceId
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachineScaleSetVMs
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/instanceView":
    get:
      description: Gets the status of a virtual machine from a VM scale set.
      operationId: VirtualMachineScaleSetVMs_GetInstanceView
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: The instance ID of the virtual machine.
          in: path
          name: instanceId
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetVMInstanceView"
      tags:
        - VirtualMachineScaleSetVMs
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/performMaintenance":
    post:
      description: Performs maintenance on a virtual machine in a VM scale set.
      operationId: VirtualMachineScaleSetVMs_PerformMaintenance
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: The instance ID of the virtual machine.
          in: path
          name: instanceId
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachineScaleSetVMs
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/poweroff":
    post:
      description: 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.
      operationId: VirtualMachineScaleSetVMs_PowerOff
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: The instance ID of the virtual machine.
          in: path
          name: instanceId
          required: true
          type: string
        - default: false
          description: 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
          in: query
          name: skipShutdown
          required: false
          type: boolean
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachineScaleSetVMs
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/redeploy":
    post:
      description: Shuts down the virtual machine in the virtual machine scale set, moves it to a new node, and powers it back on.
      operationId: VirtualMachineScaleSetVMs_Redeploy
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: The instance ID of the virtual machine.
          in: path
          name: instanceId
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachineScaleSetVMs
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/reimage":
    post:
      description: Reimages (upgrade the operating system) a specific virtual machine in a VM scale set.
      operationId: VirtualMachineScaleSetVMs_Reimage
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: The instance ID of the virtual machine.
          in: path
          name: instanceId
          required: true
          type: string
        - description: Parameters for the Reimaging Virtual machine in ScaleSet.
          in: body
          name: vmScaleSetVMReimageInput
          required: false
          schema:
            $ref: "#/definitions/VirtualMachineScaleSetVMReimageParameters"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachineScaleSetVMs
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/reimageall":
    post:
      description: 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.
      operationId: VirtualMachineScaleSetVMs_ReimageAll
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: The instance ID of the virtual machine.
          in: path
          name: instanceId
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachineScaleSetVMs
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/restart":
    post:
      description: Restarts a virtual machine in a VM scale set.
      operationId: VirtualMachineScaleSetVMs_Restart
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: The instance ID of the virtual machine.
          in: path
          name: instanceId
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachineScaleSetVMs
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/virtualmachines/{instanceId}/start":
    post:
      description: Starts a virtual machine in a VM scale set.
      operationId: VirtualMachineScaleSetVMs_Start
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the VM scale set.
          in: path
          name: vmScaleSetName
          required: true
          type: string
        - description: The instance ID of the virtual machine.
          in: path
          name: instanceId
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachineScaleSetVMs
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines":
    get:
      description: 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.
      operationId: VirtualMachines_List
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineListResult"
      tags:
        - VirtualMachines
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}":
    delete:
      description: The operation to delete a virtual machine.
      operationId: VirtualMachines_Delete
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: vmName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        "204":
          description: No Content
      tags:
        - VirtualMachines
      x-ms-long-running-operation: true
    get:
      description: Retrieves information about the model view or the instance view of a virtual machine.
      operationId: VirtualMachines_Get
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: vmName
          required: true
          type: string
        - description: The expand expression to apply on the operation.
          enum:
            - instanceView
          in: query
          name: $expand
          required: false
          type: string
          x-ms-enum:
            modelAsString: false
            name: InstanceViewTypes
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachine"
      tags:
        - VirtualMachines
    patch:
      description: The operation to update a virtual machine.
      operationId: VirtualMachines_Update
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: vmName
          required: true
          type: string
        - description: Parameters supplied to the Update Virtual Machine operation.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/VirtualMachineUpdate"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachine"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/VirtualMachine"
      tags:
        - VirtualMachines
      x-ms-examples:
        Update a VM by detaching data disk:
          parameters:
            api-version: 2019-03-01
            parameters:
              properties:
                hardwareProfile:
                  vmSize: Standard_D2_v2
                networkProfile:
                  networkInterfaces:
                    - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                      properties:
                        primary: true
                osProfile:
                  adminPassword: "{your-password}"
                  adminUsername: "{your-username}"
                  computerName: myVM
                storageProfile:
                  dataDisks:
                    - createOption: Empty
                      diskSizeGB: 1023
                      lun: 0
                      toBeDetached: true
                    - createOption: Empty
                      diskSizeGB: 1023
                      lun: 1
                      toBeDetached: false
                  imageReference:
                    offer: WindowsServer
                    publisher: MicrosoftWindowsServer
                    sku: 2016-Datacenter
                    version: latest
                  osDisk:
                    caching: ReadWrite
                    createOption: FromImage
                    managedDisk:
                      storageAccountType: Standard_LRS
                    name: myVMosdisk
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmName: myVM
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
                location: westus
                name: myVM
                properties:
                  hardwareProfile:
                    vmSize: Standard_D2_v2
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic
                        properties:
                          primary: true
                  osProfile:
                    adminUsername: "{your-username}"
                    computerName: myVM
                    secrets: []
                    windowsConfiguration:
                      enableAutomaticUpdates: true
                      provisionVMAgent: true
                  provisioningState: Updating
                  storageProfile:
                    dataDisks:
                      - caching: None
                        createOption: Empty
                        diskSizeGB: 1023
                        lun: 0
                        managedDisk:
                          storageAccountType: Standard_LRS
                        toBeDetached: true
                      - caching: None
                        createOption: Empty
                        diskSizeGB: 1023
                        lun: 1
                        managedDisk:
                          storageAccountType: Standard_LRS
                        toBeDetached: false
                    imageReference:
                      offer: WindowsServer
                      publisher: MicrosoftWindowsServer
                      sku: 2016-Datacenter
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      managedDisk:
                        storageAccountType: Standard_LRS
                      name: myVMosdisk
                      osType: Windows
                  vmId: 3906fef9-a1e5-4b83-a8a8-540858b41df0
                type: Microsoft.Compute/virtualMachines
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
                location: westus
                name: myVM
                properties:
                  hardwareProfile:
                    vmSize: Standard_D2_v2
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic
                        properties:
                          primary: true
                  osProfile:
                    adminUsername: "{your-username}"
                    computerName: myVM
                    secrets: []
                    windowsConfiguration:
                      enableAutomaticUpdates: true
                      provisionVMAgent: true
                  provisioningState: Updating
                  storageProfile:
                    dataDisks:
                      - caching: None
                        createOption: Empty
                        diskSizeGB: 1023
                        lun: 0
                        managedDisk:
                          storageAccountType: Standard_LRS
                        toBeDetached: true
                      - caching: None
                        createOption: Empty
                        diskSizeGB: 1023
                        lun: 1
                        managedDisk:
                          storageAccountType: Standard_LRS
                        toBeDetached: false
                    imageReference:
                      offer: WindowsServer
                      publisher: MicrosoftWindowsServer
                      sku: 2016-Datacenter
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      managedDisk:
                        storageAccountType: Standard_LRS
                      name: myVMosdisk
                      osType: Windows
                  vmId: 3906fef9-a1e5-4b83-a8a8-540858b41df0
                type: Microsoft.Compute/virtualMachines
      x-ms-long-running-operation: true
    put:
      description: The operation to create or update a virtual machine.
      operationId: VirtualMachines_CreateOrUpdate
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: vmName
          required: true
          type: string
        - description: Parameters supplied to the Create Virtual Machine operation.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/VirtualMachine"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachine"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/VirtualMachine"
      tags:
        - VirtualMachines
      x-ms-examples:
        Create a custom-image vm from an unmanaged generalized os image.:
          parameters:
            api-version: 2019-03-01
            parameters:
              location: westus
              properties:
                hardwareProfile:
                  vmSize: Standard_D1_v2
                networkProfile:
                  networkInterfaces:
                    - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                      properties:
                        primary: true
                osProfile:
                  adminPassword: "{your-password}"
                  adminUsername: "{your-username}"
                  computerName: myVM
                storageProfile:
                  osDisk:
                    caching: ReadWrite
                    createOption: FromImage
                    image:
                      uri: http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/{existing-generalized-os-image-blob-name}.vhd
                    name: myVMosdisk
                    osType: Windows
                    vhd:
                      uri: http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk.vhd
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmName: "{vm-name}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
                location: westus
                name: myVM
                properties:
                  hardwareProfile:
                    vmSize: Standard_D1_v2
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic
                        properties:
                          primary: true
                  osProfile:
                    adminUsername: "{your-username}"
                    computerName: myVM
                    secrets: []
                    windowsConfiguration:
                      enableAutomaticUpdates: true
                      provisionVMAgent: true
                  provisioningState: Creating
                  storageProfile:
                    dataDisks: []
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      image:
                        uri: https://{existing-storage-account-name}.blob.core.windows.net/system/Microsoft.Compute/Images/vhds/{existing-generalized-os-image-blob-name}.vhd
                      name: myVMosdisk
                      osType: Windows
                      vhd:
                        uri: http://{existing-storage-account-name}.blob.core.windows.net/vhds/myDisk.vhd
                  vmId: 926cd555-a07c-4ff5-b214-4aa4dd09d79b
                type: Microsoft.Compute/virtualMachines
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
                location: westus
                name: myVM
                properties:
                  hardwareProfile:
                    vmSize: Standard_D1_v2
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic
                        properties:
                          primary: true
                  osProfile:
                    adminUsername: "{your-username}"
                    computerName: myVM
                    secrets: []
                    windowsConfiguration:
                      enableAutomaticUpdates: true
                      provisionVMAgent: true
                  provisioningState: Creating
                  storageProfile:
                    dataDisks: []
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      image:
                        uri: https://{existing-storage-account-name}.blob.core.windows.net/system/Microsoft.Compute/Images/vhds/{existing-generalized-os-image-blob-name}.vhd
                      name: myVMosdisk
                      osType: Windows
                      vhd:
                        uri: http://{existing-storage-account-name}.blob.core.windows.net/vhds/myDisk.vhd
                  vmId: 926cd555-a07c-4ff5-b214-4aa4dd09d79b
                type: Microsoft.Compute/virtualMachines
        Create a platform-image vm with unmanaged os and data disks.:
          parameters:
            api-version: 2019-03-01
            parameters:
              location: westus
              properties:
                hardwareProfile:
                  vmSize: Standard_D2_v2
                networkProfile:
                  networkInterfaces:
                    - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                      properties:
                        primary: true
                osProfile:
                  adminPassword: "{your-password}"
                  adminUsername: "{your-username}"
                  computerName: myVM
                storageProfile:
                  dataDisks:
                    - createOption: Empty
                      diskSizeGB: 1023
                      lun: 0
                      vhd:
                        uri: http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk0.vhd
                    - createOption: Empty
                      diskSizeGB: 1023
                      lun: 1
                      vhd:
                        uri: http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk1.vhd
                  imageReference:
                    offer: WindowsServer
                    publisher: MicrosoftWindowsServer
                    sku: 2016-Datacenter
                    version: latest
                  osDisk:
                    caching: ReadWrite
                    createOption: FromImage
                    name: myVMosdisk
                    vhd:
                      uri: http://{existing-storage-account-name}.blob.core.windows.net/{existing-container-name}/myDisk.vhd
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmName: "{vm-name}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
                location: westus
                name: myVM
                properties:
                  hardwareProfile:
                    vmSize: Standard_D2_v2
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic
                        properties:
                          primary: true
                  osProfile:
                    adminUsername: "{your-username}"
                    computerName: myVM
                    secrets: []
                    windowsConfiguration:
                      enableAutomaticUpdates: true
                      provisionVMAgent: true
                  provisioningState: Creating
                  storageProfile:
                    dataDisks:
                      - caching: None
                        createOption: Empty
                        diskSizeGB: 1023
                        lun: 0
                        name: dataDisk0
                        vhd:
                          uri: http://{existing-storage-account-name}.blob.core.windows.net/vhds/myDisk0.vhd
                      - caching: None
                        createOption: Empty
                        diskSizeGB: 1023
                        lun: 1
                        name: dataDisk1
                        vhd:
                          uri: http://{existing-storage-account-name}.blob.core.windows.net/vhds/myDisk1.vhd
                    imageReference:
                      offer: WindowsServer
                      publisher: MicrosoftWindowsServer
                      sku: 2016-Datacenter
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      name: myVMosdisk
                      osType: Windows
                      vhd:
                        uri: http://{existing-storage-account-name}.blob.core.windows.net/vhds/myDisk.vhd
                  vmId: 5230a749-2f68-4830-900b-702182d32e63
                type: Microsoft.Compute/virtualMachines
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
                location: westus
                name: myVM
                properties:
                  hardwareProfile:
                    vmSize: Standard_D2_v2
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic
                        properties:
                          primary: true
                  osProfile:
                    adminUsername: "{your-username}"
                    computerName: myVM
                    secrets: []
                    windowsConfiguration:
                      enableAutomaticUpdates: true
                      provisionVMAgent: true
                  provisioningState: Creating
                  storageProfile:
                    dataDisks:
                      - caching: None
                        createOption: Empty
                        diskSizeGB: 1023
                        lun: 0
                        name: dataDisk0
                        vhd:
                          uri: http://{existing-storage-account-name}.blob.core.windows.net/vhds/myDisk0.vhd
                      - caching: None
                        createOption: Empty
                        diskSizeGB: 1023
                        lun: 1
                        name: dataDisk1
                        vhd:
                          uri: http://{existing-storage-account-name}.blob.core.windows.net/vhds/myDisk1.vhd
                    imageReference:
                      offer: WindowsServer
                      publisher: MicrosoftWindowsServer
                      sku: 2016-Datacenter
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      name: myVMosdisk
                      osType: Windows
                      vhd:
                        uri: http://{existing-storage-account-name}.blob.core.windows.net/vhds/myDisk.vhd
                  vmId: 5230a749-2f68-4830-900b-702182d32e63
                type: Microsoft.Compute/virtualMachines
        Create a vm from a custom image.:
          parameters:
            api-version: 2019-03-01
            parameters:
              location: westus
              properties:
                hardwareProfile:
                  vmSize: Standard_D1_v2
                networkProfile:
                  networkInterfaces:
                    - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                      properties:
                        primary: true
                osProfile:
                  adminPassword: "{your-password}"
                  adminUsername: "{your-username}"
                  computerName: myVM
                storageProfile:
                  imageReference:
                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/{existing-custom-image-name}
                  osDisk:
                    caching: ReadWrite
                    createOption: FromImage
                    managedDisk:
                      storageAccountType: Standard_LRS
                    name: myVMosdisk
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmName: myVM
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
                location: westus
                name: myVM
                properties:
                  hardwareProfile:
                    vmSize: Standard_D1_v2
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic
                        properties:
                          primary: true
                  osProfile:
                    adminUsername: "{your-username}"
                    computerName: myVM
                    linuxConfiguration:
                      disablePasswordAuthentication: false
                    secrets: []
                  provisioningState: Creating
                  storageProfile:
                    dataDisks: []
                    imageReference:
                      id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/nsgcustom
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      diskSizeGB: 30
                      managedDisk:
                        storageAccountType: Standard_LRS
                      name: myVMosdisk
                      osType: Linux
                  vmId: 71aa3d5a-d73d-4970-9182-8580433b2865
                type: Microsoft.Compute/virtualMachines
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
                location: westus
                name: myVM
                properties:
                  hardwareProfile:
                    vmSize: Standard_D1_v2
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic
                        properties:
                          primary: true
                  osProfile:
                    adminUsername: "{your-username}"
                    computerName: myVM
                    linuxConfiguration:
                      disablePasswordAuthentication: false
                    secrets: []
                  provisioningState: Creating
                  storageProfile:
                    dataDisks: []
                    imageReference:
                      id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/nsgcustom
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      diskSizeGB: 30
                      managedDisk:
                        storageAccountType: Standard_LRS
                      name: myVMosdisk
                      osType: Linux
                  vmId: 71aa3d5a-d73d-4970-9182-8580433b2865
                type: Microsoft.Compute/virtualMachines
        Create a vm in an availability set.:
          parameters:
            api-version: 2019-03-01
            parameters:
              location: westus
              properties:
                availabilitySet:
                  id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/availabilitySets/{existing-availability-set-name}
                hardwareProfile:
                  vmSize: Standard_D1_v2
                networkProfile:
                  networkInterfaces:
                    - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                      properties:
                        primary: true
                osProfile:
                  adminPassword: "{your-password}"
                  adminUsername: "{your-username}"
                  computerName: myVM
                storageProfile:
                  imageReference:
                    offer: WindowsServer
                    publisher: MicrosoftWindowsServer
                    sku: 2016-Datacenter
                    version: latest
                  osDisk:
                    caching: ReadWrite
                    createOption: FromImage
                    managedDisk:
                      storageAccountType: Standard_LRS
                    name: myVMosdisk
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmName: myVM
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
                location: westus
                name: myVM
                properties:
                  availabilitySet:
                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/availabilitySets/NSGEXISTINGAS
                  hardwareProfile:
                    vmSize: Standard_D1_v2
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic
                        properties:
                          primary: true
                  osProfile:
                    adminUsername: "{your-username}"
                    computerName: myVM
                    secrets: []
                    windowsConfiguration:
                      enableAutomaticUpdates: true
                      provisionVMAgent: true
                  provisioningState: Creating
                  storageProfile:
                    dataDisks: []
                    imageReference:
                      offer: WindowsServer
                      publisher: MicrosoftWindowsServer
                      sku: 2016-Datacenter
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      managedDisk:
                        storageAccountType: Standard_LRS
                      name: myVMosdisk
                      osType: Windows
                  vmId: b7a098cc-b0b8-46e8-a205-62f301a62a8f
                type: Microsoft.Compute/virtualMachines
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
                location: westus
                name: myVM
                properties:
                  availabilitySet:
                    id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/availabilitySets/NSGEXISTINGAS
                  hardwareProfile:
                    vmSize: Standard_D1_v2
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic
                        properties:
                          primary: true
                  osProfile:
                    adminUsername: "{your-username}"
                    computerName: myVM
                    secrets: []
                    windowsConfiguration:
                      enableAutomaticUpdates: true
                      provisionVMAgent: true
                  provisioningState: Creating
                  storageProfile:
                    dataDisks: []
                    imageReference:
                      offer: WindowsServer
                      publisher: MicrosoftWindowsServer
                      sku: 2016-Datacenter
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      managedDisk:
                        storageAccountType: Standard_LRS
                      name: myVMosdisk
                      osType: Windows
                  vmId: b7a098cc-b0b8-46e8-a205-62f301a62a8f
                type: Microsoft.Compute/virtualMachines
        Create a vm with a marketplace image plan.:
          parameters:
            api-version: 2019-03-01
            parameters:
              location: westus
              plan:
                name: windows2016
                product: windows-data-science-vm
                publisher: microsoft-ads
              properties:
                hardwareProfile:
                  vmSize: Standard_D1_v2
                networkProfile:
                  networkInterfaces:
                    - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                      properties:
                        primary: true
                osProfile:
                  adminPassword: "{your-password}"
                  adminUsername: "{your-username}"
                  computerName: myVM
                storageProfile:
                  imageReference:
                    offer: windows-data-science-vm
                    publisher: microsoft-ads
                    sku: windows2016
                    version: latest
                  osDisk:
                    caching: ReadWrite
                    createOption: FromImage
                    managedDisk:
                      storageAccountType: Standard_LRS
                    name: myVMosdisk
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmName: myVM
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
                location: westus
                name: myVM
                plan:
                  name: standard-data-science-vm
                  product: standard-data-science-vm
                  publisher: microsoft-ads
                properties:
                  hardwareProfile:
                    vmSize: Standard_D1_v2
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic
                        properties:
                          primary: true
                  osProfile:
                    adminUsername: "{your-username}"
                    computerName: myVM
                    secrets: []
                    windowsConfiguration:
                      enableAutomaticUpdates: true
                      provisionVMAgent: true
                  provisioningState: Creating
                  storageProfile:
                    dataDisks: []
                    imageReference:
                      offer: standard-data-science-vm
                      publisher: microsoft-ads
                      sku: standard-data-science-vm
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      managedDisk:
                        storageAccountType: Standard_LRS
                      name: myVMosdisk
                      osType: Windows
                  vmId: 5c0d55a7-c407-4ed6-bf7d-ddb810267c85
                type: Microsoft.Compute/virtualMachines
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
                location: westus
                name: myVM
                plan:
                  name: standard-data-science-vm
                  product: standard-data-science-vm
                  publisher: microsoft-ads
                properties:
                  hardwareProfile:
                    vmSize: Standard_D1_v2
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic
                        properties:
                          primary: true
                  osProfile:
                    adminUsername: "{your-username}"
                    computerName: myVM
                    secrets: []
                    windowsConfiguration:
                      enableAutomaticUpdates: true
                      provisionVMAgent: true
                  provisioningState: Creating
                  storageProfile:
                    dataDisks: []
                    imageReference:
                      offer: standard-data-science-vm
                      publisher: microsoft-ads
                      sku: standard-data-science-vm
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      managedDisk:
                        storageAccountType: Standard_LRS
                      name: myVMosdisk
                      osType: Windows
                  vmId: 5c0d55a7-c407-4ed6-bf7d-ddb810267c85
                type: Microsoft.Compute/virtualMachines
        Create a vm with boot diagnostics.:
          parameters:
            api-version: 2019-03-01
            parameters:
              location: westus
              properties:
                diagnosticsProfile:
                  bootDiagnostics:
                    enabled: true
                    storageUri: http://{existing-storage-account-name}.blob.core.windows.net
                hardwareProfile:
                  vmSize: Standard_D1_v2
                networkProfile:
                  networkInterfaces:
                    - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                      properties:
                        primary: true
                osProfile:
                  adminPassword: "{your-password}"
                  adminUsername: "{your-username}"
                  computerName: myVM
                storageProfile:
                  imageReference:
                    offer: WindowsServer
                    publisher: MicrosoftWindowsServer
                    sku: 2016-Datacenter
                    version: latest
                  osDisk:
                    caching: ReadWrite
                    createOption: FromImage
                    managedDisk:
                      storageAccountType: Standard_LRS
                    name: myVMosdisk
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmName: myVM
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
                location: westus
                name: myVM
                properties:
                  diagnosticsProfile:
                    bootDiagnostics:
                      enabled: true
                      storageUri: http://nsgdiagnostic.blob.core.windows.net
                  hardwareProfile:
                    vmSize: Standard_D1_v2
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic
                        properties:
                          primary: true
                  osProfile:
                    adminUsername: "{your-username}"
                    computerName: myVM
                    secrets: []
                    windowsConfiguration:
                      enableAutomaticUpdates: true
                      provisionVMAgent: true
                  provisioningState: Creating
                  storageProfile:
                    dataDisks: []
                    imageReference:
                      offer: WindowsServer
                      publisher: MicrosoftWindowsServer
                      sku: 2016-Datacenter
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      managedDisk:
                        storageAccountType: Standard_LRS
                      name: myVMosdisk
                      osType: Windows
                  vmId: 676420ba-7a24-4bfe-80bd-9c841ee184fa
                type: Microsoft.Compute/virtualMachines
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
                location: westus
                name: myVM
                properties:
                  diagnosticsProfile:
                    bootDiagnostics:
                      enabled: true
                      storageUri: http://nsgdiagnostic.blob.core.windows.net
                  hardwareProfile:
                    vmSize: Standard_D1_v2
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic
                        properties:
                          primary: true
                  osProfile:
                    adminUsername: "{your-username}"
                    computerName: myVM
                    secrets: []
                    windowsConfiguration:
                      enableAutomaticUpdates: true
                      provisionVMAgent: true
                  provisioningState: Creating
                  storageProfile:
                    dataDisks: []
                    imageReference:
                      offer: WindowsServer
                      publisher: MicrosoftWindowsServer
                      sku: 2016-Datacenter
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      managedDisk:
                        storageAccountType: Standard_LRS
                      name: myVMosdisk
                      osType: Windows
                  vmId: 676420ba-7a24-4bfe-80bd-9c841ee184fa
                type: Microsoft.Compute/virtualMachines
        Create a vm with empty data disks.:
          parameters:
            api-version: 2019-03-01
            parameters:
              location: westus
              properties:
                hardwareProfile:
                  vmSize: Standard_D2_v2
                networkProfile:
                  networkInterfaces:
                    - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                      properties:
                        primary: true
                osProfile:
                  adminPassword: "{your-password}"
                  adminUsername: "{your-username}"
                  computerName: myVM
                storageProfile:
                  dataDisks:
                    - createOption: Empty
                      diskSizeGB: 1023
                      lun: 0
                    - createOption: Empty
                      diskSizeGB: 1023
                      lun: 1
                  imageReference:
                    offer: WindowsServer
                    publisher: MicrosoftWindowsServer
                    sku: 2016-Datacenter
                    version: latest
                  osDisk:
                    caching: ReadWrite
                    createOption: FromImage
                    managedDisk:
                      storageAccountType: Standard_LRS
                    name: myVMosdisk
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmName: myVM
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
                location: westus
                name: myVM
                properties:
                  hardwareProfile:
                    vmSize: Standard_D2_v2
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic
                        properties:
                          primary: true
                  osProfile:
                    adminUsername: "{your-username}"
                    computerName: myVM
                    secrets: []
                    windowsConfiguration:
                      enableAutomaticUpdates: true
                      provisionVMAgent: true
                  provisioningState: Creating
                  storageProfile:
                    dataDisks:
                      - caching: None
                        createOption: Empty
                        diskSizeGB: 1023
                        lun: 0
                        managedDisk:
                          storageAccountType: Standard_LRS
                      - caching: None
                        createOption: Empty
                        diskSizeGB: 1023
                        lun: 1
                        managedDisk:
                          storageAccountType: Standard_LRS
                    imageReference:
                      offer: WindowsServer
                      publisher: MicrosoftWindowsServer
                      sku: 2016-Datacenter
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      managedDisk:
                        storageAccountType: Standard_LRS
                      name: myVMosdisk
                      osType: Windows
                  vmId: 3906fef9-a1e5-4b83-a8a8-540858b41df0
                type: Microsoft.Compute/virtualMachines
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
                location: westus
                name: myVM
                properties:
                  hardwareProfile:
                    vmSize: Standard_D2_v2
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic
                        properties:
                          primary: true
                  osProfile:
                    adminUsername: "{your-username}"
                    computerName: myVM
                    secrets: []
                    windowsConfiguration:
                      enableAutomaticUpdates: true
                      provisionVMAgent: true
                  provisioningState: Creating
                  storageProfile:
                    dataDisks:
                      - caching: None
                        createOption: Empty
                        diskSizeGB: 1023
                        lun: 0
                        managedDisk:
                          storageAccountType: Standard_LRS
                        toBeDetached: false
                      - caching: None
                        createOption: Empty
                        diskSizeGB: 1023
                        lun: 1
                        managedDisk:
                          storageAccountType: Standard_LRS
                        toBeDetached: false
                    imageReference:
                      offer: WindowsServer
                      publisher: MicrosoftWindowsServer
                      sku: 2016-Datacenter
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      managedDisk:
                        storageAccountType: Standard_LRS
                      name: myVMosdisk
                      osType: Windows
                  vmId: 3906fef9-a1e5-4b83-a8a8-540858b41df0
                type: Microsoft.Compute/virtualMachines
        Create a vm with ephemeral os disk.:
          parameters:
            api-version: 2019-03-01
            parameters:
              location: westus
              plan:
                name: windows2016
                product: windows-data-science-vm
                publisher: microsoft-ads
              properties:
                hardwareProfile:
                  vmSize: Standard_DS1_v2
                networkProfile:
                  networkInterfaces:
                    - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                      properties:
                        primary: true
                osProfile:
                  adminPassword: "{your-password}"
                  adminUsername: "{your-username}"
                  computerName: myVM
                storageProfile:
                  imageReference:
                    offer: windows-data-science-vm
                    publisher: microsoft-ads
                    sku: windows2016
                    version: latest
                  osDisk:
                    caching: ReadOnly
                    createOption: FromImage
                    diffDiskSettings:
                      option: Local
                    managedDisk:
                      storageAccountType: Standard_LRS
                    name: myVMosdisk
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmName: myVM
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
                location: westus
                name: myVM
                plan:
                  name: standard-data-science-vm
                  product: standard-data-science-vm
                  publisher: microsoft-ads
                properties:
                  hardwareProfile:
                    vmSize: Standard_DS1_v2
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic
                        properties:
                          primary: true
                  osProfile:
                    adminUsername: "{your-username}"
                    computerName: myVM
                    secrets: []
                    windowsConfiguration:
                      enableAutomaticUpdates: true
                      provisionVMAgent: true
                  provisioningState: Creating
                  storageProfile:
                    dataDisks: []
                    imageReference:
                      offer: standard-data-science-vm
                      publisher: microsoft-ads
                      sku: standard-data-science-vm
                      version: latest
                    osDisk:
                      caching: ReadOnly
                      createOption: FromImage
                      diffDiskSettings:
                        option: Local
                      managedDisk:
                        storageAccountType: Standard_LRS
                      name: myVMosdisk
                      osType: Windows
                  vmId: 5c0d55a7-c407-4ed6-bf7d-ddb810267c85
                type: Microsoft.Compute/virtualMachines
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
                location: westus
                name: myVM
                plan:
                  name: standard-data-science-vm
                  product: standard-data-science-vm
                  publisher: microsoft-ads
                properties:
                  hardwareProfile:
                    vmSize: Standard_DS1_v2
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic
                        properties:
                          primary: true
                  osProfile:
                    adminUsername: "{your-username}"
                    computerName: myVM
                    secrets: []
                    windowsConfiguration:
                      enableAutomaticUpdates: true
                      provisionVMAgent: true
                  provisioningState: Creating
                  storageProfile:
                    dataDisks: []
                    imageReference:
                      offer: standard-data-science-vm
                      publisher: microsoft-ads
                      sku: standard-data-science-vm
                      version: latest
                    osDisk:
                      caching: ReadOnly
                      createOption: FromImage
                      diffDiskSettings:
                        option: Local
                      managedDisk:
                        storageAccountType: Standard_LRS
                      name: myVMosdisk
                      osType: Windows
                  vmId: 5c0d55a7-c407-4ed6-bf7d-ddb810267c85
                type: Microsoft.Compute/virtualMachines
        Create a vm with password authentication.:
          parameters:
            api-version: 2019-03-01
            parameters:
              location: westus
              properties:
                hardwareProfile:
                  vmSize: Standard_D1_v2
                networkProfile:
                  networkInterfaces:
                    - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                      properties:
                        primary: true
                osProfile:
                  adminPassword: "{your-password}"
                  adminUsername: "{your-username}"
                  computerName: myVM
                storageProfile:
                  imageReference:
                    offer: WindowsServer
                    publisher: MicrosoftWindowsServer
                    sku: 2016-Datacenter
                    version: latest
                  osDisk:
                    caching: ReadWrite
                    createOption: FromImage
                    managedDisk:
                      storageAccountType: Standard_LRS
                    name: myVMosdisk
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmName: myVM
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
                location: westus
                name: myVM
                properties:
                  hardwareProfile:
                    vmSize: Standard_D1_v2
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic
                        properties:
                          primary: true
                  osProfile:
                    adminUsername: "{your-username}"
                    computerName: myVM
                    secrets: []
                    windowsConfiguration:
                      enableAutomaticUpdates: true
                      provisionVMAgent: true
                  provisioningState: Creating
                  storageProfile:
                    dataDisks: []
                    imageReference:
                      offer: WindowsServer
                      publisher: MicrosoftWindowsServer
                      sku: 2016-Datacenter
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      managedDisk:
                        storageAccountType: Standard_LRS
                      name: myVMosdisk
                      osType: Windows
                  vmId: b248db33-62ba-4d2d-b791-811e075ee0f5
                type: Microsoft.Compute/virtualMachines
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
                location: westus
                name: myVM
                properties:
                  hardwareProfile:
                    vmSize: Standard_D1_v2
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic
                        properties:
                          primary: true
                  osProfile:
                    adminUsername: "{your-username}"
                    computerName: myVM
                    secrets: []
                    windowsConfiguration:
                      enableAutomaticUpdates: true
                      provisionVMAgent: true
                  provisioningState: Creating
                  storageProfile:
                    dataDisks: []
                    imageReference:
                      offer: WindowsServer
                      publisher: MicrosoftWindowsServer
                      sku: 2016-Datacenter
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      managedDisk:
                        storageAccountType: Standard_LRS
                      name: myVMosdisk
                      osType: Windows
                  vmId: b248db33-62ba-4d2d-b791-811e075ee0f5
                type: Microsoft.Compute/virtualMachines
        Create a vm with premium storage.:
          parameters:
            api-version: 2019-03-01
            parameters:
              location: westus
              properties:
                hardwareProfile:
                  vmSize: Standard_D1_v2
                networkProfile:
                  networkInterfaces:
                    - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                      properties:
                        primary: true
                osProfile:
                  adminPassword: "{your-password}"
                  adminUsername: "{your-username}"
                  computerName: myVM
                storageProfile:
                  imageReference:
                    offer: WindowsServer
                    publisher: MicrosoftWindowsServer
                    sku: 2016-Datacenter
                    version: latest
                  osDisk:
                    caching: ReadWrite
                    createOption: FromImage
                    managedDisk:
                      storageAccountType: Premium_LRS
                    name: myVMosdisk
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmName: myVM
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
                location: westus
                name: myVM
                properties:
                  hardwareProfile:
                    vmSize: Standard_DS1_v2
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic
                        properties:
                          primary: true
                  osProfile:
                    adminUsername: "{your-username}"
                    computerName: myVM
                    secrets: []
                    windowsConfiguration:
                      enableAutomaticUpdates: true
                      provisionVMAgent: true
                  provisioningState: Creating
                  storageProfile:
                    dataDisks: []
                    imageReference:
                      offer: WindowsServer
                      publisher: MicrosoftWindowsServer
                      sku: 2016-Datacenter
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      managedDisk:
                        storageAccountType: Premium_LRS
                      name: myVMosdisk
                      osType: Windows
                  vmId: a149cd25-409f-41af-8088-275f5486bc93
                type: Microsoft.Compute/virtualMachines
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
                location: westus
                name: myVM
                properties:
                  hardwareProfile:
                    vmSize: Standard_DS1_v2
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic
                        properties:
                          primary: true
                  osProfile:
                    adminUsername: "{your-username}"
                    computerName: myVM
                    secrets: []
                    windowsConfiguration:
                      enableAutomaticUpdates: true
                      provisionVMAgent: true
                  provisioningState: Creating
                  storageProfile:
                    dataDisks: []
                    imageReference:
                      offer: WindowsServer
                      publisher: MicrosoftWindowsServer
                      sku: 2016-Datacenter
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      managedDisk:
                        storageAccountType: Premium_LRS
                      name: myVMosdisk
                      osType: Windows
                  vmId: a149cd25-409f-41af-8088-275f5486bc93
                type: Microsoft.Compute/virtualMachines
        Create a vm with ssh authentication.:
          parameters:
            api-version: 2019-03-01
            parameters:
              location: westus
              properties:
                hardwareProfile:
                  vmSize: Standard_D1_v2
                networkProfile:
                  networkInterfaces:
                    - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/{existing-nic-name}
                      properties:
                        primary: true
                osProfile:
                  adminUsername: "{your-username}"
                  computerName: myVM
                  linuxConfiguration:
                    disablePasswordAuthentication: true
                    ssh:
                      publicKeys:
                        - keyData: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeClRAk2ipUs/l5voIsDC5q9RI+YSRd1Bvd/O+axgY4WiBzG+4FwJWZm/mLLe5DoOdHQwmU2FrKXZSW4w2sYE70KeWnrFViCOX5MTVvJgPE8ClugNl8RWth/tU849DvM9sT7vFgfVSHcAS2yDRyDlueii+8nF2ym8XWAPltFVCyLHRsyBp5YPqK8JFYIa1eybKsY3hEAxRCA+/7bq8et+Gj3coOsuRmrehav7rE6N12Pb80I6ofa6SM5XNYq4Xk0iYNx7R3kdz0Jj9XgZYWjAHjJmT0gTRoOnt6upOuxK7xI/ykWrllgpXrCPu3Ymz+c+ujaqcxDopnAl2lmf69/J1
                          path: /home/{your-username}/.ssh/authorized_keys
                storageProfile:
                  imageReference:
                    offer: "{image_offer}"
                    publisher: "{image_publisher}"
                    sku: "{image_sku}"
                    version: latest
                  osDisk:
                    caching: ReadWrite
                    createOption: FromImage
                    managedDisk:
                      storageAccountType: Standard_LRS
                    name: myVMosdisk
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmName: myVM
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
                location: westus
                name: myVM
                properties:
                  hardwareProfile:
                    vmSize: Standard_D1_v2
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic
                        properties:
                          primary: true
                  osProfile:
                    adminUsername: "{your-username}"
                    computerName: myVM
                    linuxConfiguration:
                      disablePasswordAuthentication: true
                      ssh:
                        publicKeys:
                          - keyData: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeClRAk2ipUs/l5voIsDC5q9RI+YSRd1Bvd/O+axgY4WiBzG+4FwJWZm/mLLe5DoOdHQwmU2FrKXZSW4w2sYE70KeWnrFViCOX5MTVvJgPE8ClugNl8RWth/tU849DvM9sT7vFgfVSHcAS2yDRyDlueii+8nF2ym8XWAPltFVCyLHRsyBp5YPqK8JFYIa1eybKsY3hEAxRCA+/7bq8et+Gj3coOsuRmrehav7rE6N12Pb80I6ofa6SM5XNYq4Xk0iYNx7R3kdz0Jj9XgZYWjAHjJmT0gTRoOnt6upOuxK7xI/ykWrllgpXrCPu3Ymz+c+ujaqcxDopnAl2lmf69/J1
                            path: /home/{your-username}/.ssh/authorized_keys
                    secrets: []
                  provisioningState: Creating
                  storageProfile:
                    dataDisks: []
                    imageReference:
                      offer: UbuntuServer
                      publisher: Canonical
                      sku: 16.04-LTS
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      managedDisk:
                        storageAccountType: Standard_LRS
                      name: myVMosdisk
                      osType: Linux
                  vmId: e0de9b84-a506-4b95-9623-00a425d05c90
                type: Microsoft.Compute/virtualMachines
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM
                location: westus
                name: myVM
                properties:
                  hardwareProfile:
                    vmSize: Standard_D1_v2
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/nsgExistingNic
                        properties:
                          primary: true
                  osProfile:
                    adminUsername: "{your-username}"
                    computerName: myVM
                    linuxConfiguration:
                      disablePasswordAuthentication: true
                      ssh:
                        publicKeys:
                          - keyData: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeClRAk2ipUs/l5voIsDC5q9RI+YSRd1Bvd/O+axgY4WiBzG+4FwJWZm/mLLe5DoOdHQwmU2FrKXZSW4w2sYE70KeWnrFViCOX5MTVvJgPE8ClugNl8RWth/tU849DvM9sT7vFgfVSHcAS2yDRyDlueii+8nF2ym8XWAPltFVCyLHRsyBp5YPqK8JFYIa1eybKsY3hEAxRCA+/7bq8et+Gj3coOsuRmrehav7rE6N12Pb80I6ofa6SM5XNYq4Xk0iYNx7R3kdz0Jj9XgZYWjAHjJmT0gTRoOnt6upOuxK7xI/ykWrllgpXrCPu3Ymz+c+ujaqcxDopnAl2lmf69/J1
                            path: /home/{your-username}/.ssh/authorized_keys
                    secrets: []
                  provisioningState: Creating
                  storageProfile:
                    dataDisks: []
                    imageReference:
                      offer: UbuntuServer
                      publisher: Canonical
                      sku: 16.04-LTS
                      version: latest
                    osDisk:
                      caching: ReadWrite
                      createOption: FromImage
                      managedDisk:
                        storageAccountType: Standard_LRS
                      name: myVMosdisk
                      osType: Linux
                  vmId: e0de9b84-a506-4b95-9623-00a425d05c90
                type: Microsoft.Compute/virtualMachines
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/capture":
    post:
      description: Captures the VM by copying virtual hard disks of the VM and outputs a template that can be used to create similar VMs.
      operationId: VirtualMachines_Capture
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: vmName
          required: true
          type: string
        - description: Parameters supplied to the Capture Virtual Machine operation.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/VirtualMachineCaptureParameters"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineCaptureResult"
        "202":
          description: Accepted
      tags:
        - VirtualMachines
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: location
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/convertToManagedDisks":
    post:
      description: Converts virtual machine disks from blob-based to managed disks. Virtual machine must be stop-deallocated before invoking this operation.
      operationId: VirtualMachines_ConvertToManagedDisks
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: vmName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachines
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/deallocate":
    post:
      description: Shuts down the virtual machine and releases the compute resources. You are not billed for the compute resources that this virtual machine uses.
      operationId: VirtualMachines_Deallocate
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: vmName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachines
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/extensions":
    get:
      description: The operation to get all extensions of a Virtual Machine.
      operationId: VirtualMachineExtensions_List
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual machine containing the extension.
          in: path
          name: vmName
          required: true
          type: string
        - description: The expand expression to apply on the operation.
          in: query
          name: $expand
          required: false
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineExtensionsListResult"
      tags:
        - VirtualMachineExtensions
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/extensions/{vmExtensionName}":
    delete:
      description: The operation to delete the extension.
      operationId: VirtualMachineExtensions_Delete
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual machine where the extension should be deleted.
          in: path
          name: vmName
          required: true
          type: string
        - description: The name of the virtual machine extension.
          in: path
          name: vmExtensionName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        "204":
          description: No Content
      tags:
        - VirtualMachineExtensions
      x-ms-long-running-operation: true
    get:
      description: The operation to get the extension.
      operationId: VirtualMachineExtensions_Get
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual machine containing the extension.
          in: path
          name: vmName
          required: true
          type: string
        - description: The name of the virtual machine extension.
          in: path
          name: vmExtensionName
          required: true
          type: string
        - description: The expand expression to apply on the operation.
          in: query
          name: $expand
          required: false
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineExtension"
      tags:
        - VirtualMachineExtensions
    patch:
      description: The operation to update the extension.
      operationId: VirtualMachineExtensions_Update
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual machine where the extension should be updated.
          in: path
          name: vmName
          required: true
          type: string
        - description: The name of the virtual machine extension.
          in: path
          name: vmExtensionName
          required: true
          type: string
        - description: Parameters supplied to the Update Virtual Machine Extension operation.
          in: body
          name: extensionParameters
          required: true
          schema:
            $ref: "#/definitions/VirtualMachineExtensionUpdate"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineExtension"
      tags:
        - VirtualMachineExtensions
      x-ms-long-running-operation: true
    put:
      description: The operation to create or update the extension.
      operationId: VirtualMachineExtensions_CreateOrUpdate
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual machine where the extension should be created or updated.
          in: path
          name: vmName
          required: true
          type: string
        - description: The name of the virtual machine extension.
          in: path
          name: vmExtensionName
          required: true
          type: string
        - description: Parameters supplied to the Create Virtual Machine Extension operation.
          in: body
          name: extensionParameters
          required: true
          schema:
            $ref: "#/definitions/VirtualMachineExtension"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineExtension"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/VirtualMachineExtension"
      tags:
        - VirtualMachineExtensions
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/generalize":
    post:
      description: Sets the state of the virtual machine to generalized.
      operationId: VirtualMachines_Generalize
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: vmName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
      tags:
        - VirtualMachines
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/instanceView":
    get:
      description: Retrieves information about the run-time state of a virtual machine.
      operationId: VirtualMachines_InstanceView
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: vmName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineInstanceView"
      tags:
        - VirtualMachines
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/performMaintenance":
    post:
      description: The operation to perform maintenance on a virtual machine.
      operationId: VirtualMachines_PerformMaintenance
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: vmName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachines
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/powerOff":
    post:
      description: 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.
      operationId: VirtualMachines_PowerOff
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: vmName
          required: true
          type: string
        - default: false
          description: 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
          in: query
          name: skipShutdown
          required: false
          type: boolean
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachines
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/redeploy":
    post:
      description: Shuts down the virtual machine, moves it to a new node, and powers it back on.
      operationId: VirtualMachines_Redeploy
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: vmName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachines
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/reimage":
    post:
      description: Reimages the virtual machine which has an ephemeral OS disk back to its initial state.
      operationId: VirtualMachines_Reimage
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: vmName
          required: true
          type: string
        - description: Parameters supplied to the Reimage Virtual Machine operation.
          in: body
          name: parameters
          required: false
          schema:
            $ref: "#/definitions/VirtualMachineReimageParameters"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachines
      x-ms-examples:
        Reimage a Virtual Machine.:
          parameters:
            api-version: 2019-03-01
            parameters:
              tempDisk: true
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmName: myVMName
          responses:
            "200": {}
            "202": {}
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/restart":
    post:
      description: The operation to restart a virtual machine.
      operationId: VirtualMachines_Restart
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: vmName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachines
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/start":
    post:
      description: The operation to start a virtual machine.
      operationId: VirtualMachines_Start
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: vmName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
      tags:
        - VirtualMachines
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/vmSizes":
    get:
      description: Lists all available virtual machine sizes to which the specified virtual machine can be resized.
      operationId: VirtualMachines_ListAvailableSizes
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: vmName
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualMachineSizeListResult"
      tags:
        - VirtualMachines
      x-ms-examples:
        Lists all available virtual machine sizes to which the specified virtual machine can be resized:
          parameters:
            api-version: 2019-03-01
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            vmName: myVmName
          responses:
            "200":
              body:
                value:
                  - maxDataDiskCount: 2
                    memoryInMB: 2048
                    name: Standard_A1_V2
                    numberOfCores: 1
                    osDiskSizeInMB: 1047552
                    resourceDiskSizeInMB: 10240
                  - maxDataDiskCount: 4
                    memoryInMB: 4096
                    name: Standard_A2_V2
                    numberOfCores: 2
                    osDiskSizeInMB: 1047552
                    resourceDiskSizeInMB: 20480
      x-ms-pageable:
        nextLinkName: null
definitions:
  AdditionalCapabilities:
    description: Enables or disables a capability on the virtual machine or virtual machine scale set.
    properties:
      ultraSSDEnabled:
        description: The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled.
        type: boolean
  AdditionalUnattendContent:
    description: Specifies additional XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup. Contents are defined by setting name, component name, and the pass in which the content is applied.
    properties:
      componentName:
        description: The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup.
        enum:
          - Microsoft-Windows-Shell-Setup
        type: string
        x-ms-enum:
          modelAsString: false
          name: ComponentNames
      content:
        description: Specifies the XML formatted content that is added to the unattend.xml file for the specified path and component. The XML must be less than 4KB and must include the root element for the setting or feature that is being inserted.
        type: string
      passName:
        description: The pass name. Currently, the only allowable value is OobeSystem.
        enum:
          - OobeSystem
        type: string
        x-ms-enum:
          modelAsString: false
          name: PassNames
      settingName:
        description: "Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon."
        enum:
          - AutoLogon
          - FirstLogonCommands
        type: string
        x-ms-enum:
          modelAsString: false
          name: SettingNames
  ApiEntityReference:
    description: The API entity reference.
    properties:
      id:
        description: The ARM resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/...
        type: string
  ApiError:
    description: Api error.
    properties:
      code:
        description: The error code.
        type: string
      details:
        description: The Api error details
        items:
          $ref: "#/definitions/ApiErrorBase"
        type: array
      innererror:
        $ref: "#/definitions/InnerError"
        description: The Api inner error
      message:
        description: The error message.
        type: string
      target:
        description: The target of the particular error.
        type: string
  ApiErrorBase:
    description: Api error base.
    properties:
      code:
        description: The error code.
        type: string
      message:
        description: The error message.
        type: string
      target:
        description: The target of the particular error.
        type: string
  AutomaticOSUpgradePolicy:
    description: The configuration parameters used for performing automatic OS upgrade.
    properties:
      disableAutomaticRollback:
        description: Whether OS image rollback feature should be disabled. Default value is false.
        type: boolean
      enableAutomaticOSUpgrade:
        description: Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false. <br><br> If this is set to true for Windows based scale sets, [enableAutomaticUpdates](https://docs.microsoft.com/dotnet/api/microsoft.azure.management.compute.models.windowsconfiguration.enableautomaticupdates?view=azure-dotnet) is automatically set to false and cannot be set to true.
        type: boolean
  AutomaticOSUpgradeProperties:
    description: Describes automatic OS upgrade properties on the image.
    properties:
      automaticOSUpgradeSupported:
        description: Specifies whether automatic OS upgrade is supported on the image.
        type: boolean
    required:
      - automaticOSUpgradeSupported
  AvailabilitySet:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Manage the availability of virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). <br><br> For more information on Azure planned maintenance, see [Planned maintenance for virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) <br><br> Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set.
    properties:
      properties:
        $ref: "#/definitions/AvailabilitySetProperties"
        x-ms-client-flatten: true
      sku:
        $ref: "#/definitions/Sku"
        description: Sku of the availability set, only name is required to be set. See AvailabilitySetSkuTypes for possible set of values. Use 'Aligned' for virtual machines with managed disks and 'Classic' for virtual machines with unmanaged disks. Default value is 'Classic'.
  AvailabilitySetListResult:
    description: The List Availability Set operation response.
    properties:
      nextLink:
        description: The URI to fetch the next page of AvailabilitySets. Call ListNext() with this URI to fetch the next page of AvailabilitySets.
        type: string
      value:
        description: The list of availability sets
        items:
          $ref: "#/definitions/AvailabilitySet"
        type: array
    required:
      - value
  AvailabilitySetProperties:
    description: The instance view of a resource.
    properties:
      platformFaultDomainCount:
        description: Fault Domain count.
        format: int32
        type: integer
      platformUpdateDomainCount:
        description: Update Domain count.
        format: int32
        type: integer
      proximityPlacementGroup:
        $ref: "#/definitions/SubResource"
        description: "Specifies information about the proximity placement group that the availability set should be assigned to. <br><br>Minimum api-version: 2018-04-01."
      statuses:
        description: The resource status information.
        items:
          $ref: "#/definitions/InstanceViewStatus"
        readOnly: true
        type: array
      virtualMachines:
        description: A list of references to all virtual machines in the availability set.
        items:
          $ref: "#/definitions/SubResource"
        type: array
  AvailabilitySetSkuType:
    description: Specifies the sku of an Availability Set. Use 'Aligned' for virtual machines with managed disks and 'Classic' for virtual machines with unmanaged disks. Default value is 'Classic'.
    enum:
      - Classic
      - Aligned
    type: string
    x-ms-enum:
      modelAsString: true
      name: AvailabilitySetSkuTypes
  AvailabilitySetUpdate:
    allOf:
      - $ref: "#/definitions/UpdateResource"
    description: Specifies information about the availability set that the virtual machine should be assigned to. Only tags may be updated.
    properties:
      properties:
        $ref: "#/definitions/AvailabilitySetProperties"
        x-ms-client-flatten: true
      sku:
        $ref: "#/definitions/Sku"
        description: Sku of the availability set
  BillingProfile:
    description: "Specifies the billing related details of a low priority VM or VMSS. <br><br>Minimum api-version: 2019-03-01."
    properties:
      maxPrice:
        description: "Specifies the maximum price you are willing to pay for a low priority VM/VMSS. This price is in US Dollars. <br><br> This price will be compared with the current low priority price for the VM size. Also, the prices are compared at the time of create/update of low priority VM/VMSS and the operation will only succeed if  the maxPrice is greater than the current low priority price. <br><br> The maxPrice will also be used for evicting a low priority VM/VMSS if the current low priority price goes beyond the maxPrice after creation of VM/VMSS. <br><br> Possible values are: <br><br> - Any decimal value greater than zero. Example: $0.01538 <br><br> -1 – indicates default price to be up-to on-demand. <br><br> You can set the maxPrice to -1 to indicate that the low priority VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you. <br><br>Minimum api-version: 2019-03-01."
        format: double
        type: number
  BootDiagnostics:
    description: Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. <br><br> You can easily view the output of your console log. <br><br> Azure also enables you to see a screenshot of the VM from the hypervisor.
    properties:
      enabled:
        description: Whether boot diagnostics should be enabled on the Virtual Machine.
        type: boolean
      storageUri:
        description: Uri of the storage account to use for placing the console output and screenshot.
        type: string
  BootDiagnosticsInstanceView:
    description: The instance view of a virtual machine boot diagnostics.
    properties:
      consoleScreenshotBlobUri:
        description: The console screenshot blob URI.
        readOnly: true
        type: string
      serialConsoleLogBlobUri:
        description: The Linux serial console log blob Uri.
        readOnly: true
        type: string
      status:
        $ref: "#/definitions/InstanceViewStatus"
        description: "The boot diagnostics status information for the VM. <br><br> NOTE: It will be set only if there are errors encountered in enabling boot diagnostics."
        readOnly: true
  Caching:
    description: "Specifies the caching requirements. <br><br> Possible values are: <br><br> **None** <br><br> **ReadOnly** <br><br> **ReadWrite** <br><br> Default: **None for Standard storage. ReadOnly for Premium storage**"
    enum:
      - None
      - ReadOnly
      - ReadWrite
    type: string
    x-ms-enum:
      modelAsString: false
      name: CachingTypes
  ComputeOperationListResult:
    description: The List Compute Operation operation response.
    properties:
      value:
        description: The list of compute operations
        items:
          $ref: "#/definitions/ComputeOperationValue"
        readOnly: true
        type: array
  ComputeOperationValue:
    description: Describes the properties of a Compute Operation value.
    properties:
      display:
        $ref: "#/definitions/ComputeOperationValueDisplay"
        x-ms-client-flatten: true
      name:
        description: The name of the compute operation.
        readOnly: true
        type: string
      origin:
        description: The origin of the compute operation.
        readOnly: true
        type: string
  ComputeOperationValueDisplay:
    description: Describes the properties of a Compute Operation Value Display.
    properties:
      description:
        description: The description of the operation.
        readOnly: true
        type: string
      operation:
        description: The display name of the compute operation.
        readOnly: true
        type: string
      provider:
        description: The resource provider for the operation.
        readOnly: true
        type: string
      resource:
        description: The display name of the resource the operation applies to.
        readOnly: true
        type: string
  CreateOption:
    description: Specifies how the virtual machine should be created.<br><br> Possible values are:<br><br> **Attach** \u2013 This value is used when you are using a specialized disk to create the virtual machine.<br><br> **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you  also use the plan element previously described.
    enum:
      - FromImage
      - Empty
      - Attach
    type: string
    x-ms-enum:
      modelAsString: true
      name: DiskCreateOptionTypes
  DataDisk:
    description: Describes a data disk.
    properties:
      caching:
        $ref: "#/definitions/Caching"
        description: "Specifies the caching requirements. <br><br> Possible values are: <br><br> **None** <br><br> **ReadOnly** <br><br> **ReadWrite** <br><br> Default: **None for Standard storage. ReadOnly for Premium storage**"
      createOption:
        $ref: "#/definitions/CreateOption"
        description: Specifies how the virtual machine should be created.<br><br> Possible values are:<br><br> **Attach** \u2013 This value is used when you are using a specialized disk to create the virtual machine.<br><br> **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you  also use the plan element previously described.
      diskSizeGB:
        description: Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. <br><br> This value cannot be larger than 1023 GB
        format: int32
        type: integer
      image:
        $ref: "#/definitions/VirtualHardDisk"
        description: The source user image virtual hard disk. The virtual hard disk will be copied before being attached to the virtual machine. If SourceImage is provided, the destination virtual hard drive must not exist.
      lun:
        description: Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
        format: int32
        type: integer
      managedDisk:
        $ref: "#/definitions/ManagedDiskParameters"
        description: The managed disk parameters.
      name:
        description: The disk name.
        type: string
      toBeDetached:
        description: Specifies whether the data disk is in process of detachment from the VirtualMachine/VirtualMachineScaleset
        type: boolean
      vhd:
        $ref: "#/definitions/VirtualHardDisk"
        description: The virtual hard disk.
      writeAcceleratorEnabled:
        description: Specifies whether writeAccelerator should be enabled or disabled on the disk.
        type: boolean
    required:
      - lun
      - createOption
  DataDiskImage:
    description: Contains the data disk images information.
    properties:
      lun:
        description: Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
        format: int32
        readOnly: true
        type: integer
  DedicatedHost:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Specifies information about the Dedicated host.
    properties:
      properties:
        $ref: "#/definitions/DedicatedHostProperties"
        x-ms-client-flatten: true
      sku:
        $ref: "#/definitions/Sku"
        description: SKU of the dedicated host for Hardware Generation and VM family. Only name is required to be set. List Microsoft.Compute SKUs for a list of possible values.
    required:
      - sku
  DedicatedHostAllocatableVM:
    description: Represents the dedicated host unutilized capacity in terms of a specific VM size.
    properties:
      count:
        description: Maximum number of VMs of size vmSize that can fit in the dedicated host's remaining capacity.
        format: double
        type: number
      vmSize:
        description: VM size in terms of which the unutilized capacity is represented.
        type: string
  DedicatedHostAvailableCapacity:
    description: Dedicated host unutilized capacity.
    properties:
      allocatableVMs:
        description: The unutilized capacity of the dedicated host represented in terms of each VM size that is allowed to be deployed to the dedicated host.
        items:
          $ref: "#/definitions/DedicatedHostAllocatableVM"
        type: array
  DedicatedHostGroup:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Specifies information about the dedicated host group that the dedicated hosts should be assigned to. <br><br> Currently, a dedicated host can only be added to a dedicated host group at creation time. An existing dedicated host cannot be added to another dedicated host group.
    properties:
      properties:
        $ref: "#/definitions/DedicatedHostGroupProperties"
        x-ms-client-flatten: true
      zones:
        description: Availability Zone to use for this host group. Only single zone is supported. The zone can be assigned only during creation. If not provided, the group supports all zones in the region. If provided, enforces each host in the group to be in the same zone.
        items:
          type: string
        type: array
  DedicatedHostGroupListResult:
    description: The List Dedicated Host Group with resource group response.
    properties:
      nextLink:
        description: The URI to fetch the next page of Dedicated Host Groups. Call ListNext() with this URI to fetch the next page of Dedicated Host Groups.
        type: string
      value:
        description: The list of dedicated host groups
        items:
          $ref: "#/definitions/DedicatedHostGroup"
        type: array
    required:
      - value
  DedicatedHostGroupProperties:
    description: Dedicated Host Group Properties.
    properties:
      hosts:
        description: A list of references to all dedicated hosts in the dedicated host group.
        items:
          $ref: "#/definitions/SubResourceReadOnly"
        readOnly: true
        type: array
      platformFaultDomainCount:
        description: Number of fault domains that the host group can span.
        format: int32
        maximum: 3
        minimum: 1
        type: integer
    required:
      - platformFaultDomainCount
  DedicatedHostGroupUpdate:
    allOf:
      - $ref: "#/definitions/UpdateResource"
    description: Specifies information about the dedicated host group that the dedicated host should be assigned to. Only tags may be updated.
    properties:
      properties:
        $ref: "#/definitions/DedicatedHostGroupProperties"
        x-ms-client-flatten: true
      zones:
        description: Availability Zone to use for this host group. Only single zone is supported. The zone can be assigned only during creation. If not provided, the group supports all zones in the region. If provided, enforces each host in the group to be in the same zone.
        items:
          type: string
        type: array
  DedicatedHostInstanceView:
    description: The instance view of a dedicated host.
    properties:
      assetId:
        description: Specifies the unique id of the dedicated physical machine on which the dedicated host resides.
        readOnly: true
        type: string
      availableCapacity:
        $ref: "#/definitions/DedicatedHostAvailableCapacity"
        description: Unutilized capacity of the dedicated host.
      statuses:
        description: The resource status information.
        items:
          $ref: "#/definitions/InstanceViewStatus"
        type: array
  DedicatedHostLicenseType:
    description: "Specifies the software license type that will be applied to the VMs deployed on the dedicated host. <br><br> Possible values are: <br><br> **None** <br><br> **Windows_Server_Hybrid** <br><br> **Windows_Server_Perpetual** <br><br> Default: **None**"
    enum:
      - None
      - Windows_Server_Hybrid
      - Windows_Server_Perpetual
    type: string
    x-ms-enum:
      modelAsString: false
      name: DedicatedHostLicenseTypes
  DedicatedHostListResult:
    description: The list dedicated host operation response.
    properties:
      nextLink:
        description: The URI to fetch the next page of dedicated hosts. Call ListNext() with this URI to fetch the next page of dedicated hosts.
        type: string
      value:
        description: The list of dedicated hosts
        items:
          $ref: "#/definitions/DedicatedHost"
        type: array
    required:
      - value
  DedicatedHostProperties:
    description: Properties of the dedicated host.
    properties:
      autoReplaceOnFailure:
        description: Specifies whether the dedicated host should be replaced automatically in case of a failure. The value is defaulted to 'true' when not provided.
        type: boolean
      hostId:
        description: A unique id generated and assigned to the dedicated host by the platform. <br><br> Does not change throughout the lifetime of the host.
        readOnly: true
        type: string
      instanceView:
        $ref: "#/definitions/DedicatedHostInstanceView"
        description: The dedicated host instance view.
        readOnly: true
      licenseType:
        $ref: "#/definitions/DedicatedHostLicenseType"
        description: "Specifies the software license type that will be applied to the VMs deployed on the dedicated host. <br><br> Possible values are: <br><br> **None** <br><br> **Windows_Server_Hybrid** <br><br> **Windows_Server_Perpetual** <br><br> Default: **None**"
      platformFaultDomain:
        description: Fault domain of the dedicated host within a dedicated host group.
        format: int32
        maximum: 2
        minimum: 0
        type: integer
      provisioningState:
        description: The provisioning state, which only appears in the response.
        readOnly: true
        type: string
      provisioningTime:
        description: The date when the host was first provisioned.
        format: date-time
        readOnly: true
        type: string
      virtualMachines:
        description: A list of references to all virtual machines in the Dedicated Host.
        items:
          $ref: "#/definitions/SubResourceReadOnly"
        readOnly: true
        type: array
  DedicatedHostUpdate:
    allOf:
      - $ref: "#/definitions/UpdateResource"
    description: Specifies information about the dedicated host. Only tags, autoReplaceOnFailure and licenseType may be updated.
    properties:
      properties:
        $ref: "#/definitions/DedicatedHostProperties"
        x-ms-client-flatten: true
  DiagnosticsProfile:
    description: "Specifies the boot diagnostic settings state. <br><br>Minimum api-version: 2015-06-15."
    properties:
      bootDiagnostics:
        $ref: "#/definitions/BootDiagnostics"
        description: Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. <br><br> You can easily view the output of your console log. <br><br> Azure also enables you to see a screenshot of the VM from the hypervisor.
  DiffDiskOption:
    description: Specifies the ephemeral disk option for operating system disk.
    enum:
      - Local
    type: string
    x-ms-enum:
      modelAsString: true
      name: DiffDiskOptions
  DiffDiskSettings:
    description: "Describes the parameters of ephemeral disk settings that can be specified for operating system disk. <br><br> NOTE: The ephemeral disk settings can only be specified for managed disk."
    properties:
      option:
        $ref: "#/definitions/DiffDiskOption"
        description: Specifies the ephemeral disk settings for operating system disk.
  DiskEncryptionSettings:
    description: Describes a Encryption Settings for a Disk
    properties:
      diskEncryptionKey:
        $ref: "#/definitions/KeyVaultSecretReference"
        description: Specifies the location of the disk encryption key, which is a Key Vault Secret.
      enabled:
        description: Specifies whether disk encryption should be enabled on the virtual machine.
        type: boolean
      keyEncryptionKey:
        $ref: "#/definitions/KeyVaultKeyReference"
        description: Specifies the location of the key encryption key in Key Vault.
  DiskInstanceView:
    description: The instance view of the disk.
    properties:
      encryptionSettings:
        description: "Specifies the encryption settings for the OS Disk. <br><br> Minimum api-version: 2015-06-15"
        items:
          $ref: "#/definitions/DiskEncryptionSettings"
        type: array
      name:
        description: The disk name.
        type: string
      statuses:
        description: The resource status information.
        items:
          $ref: "#/definitions/InstanceViewStatus"
        type: array
  HardwareProfile:
    description: Specifies the hardware settings for the virtual machine.
    properties:
      vmSize:
        description: "Specifies the size of the virtual machine. For more information about virtual machine sizes, see [Sizes for virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-sizes?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). <br><br> The available VM sizes depend on region and availability set. For a list of available sizes use these APIs:  <br><br> [List all available virtual machine sizes in an availability set](https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes) <br><br> [List all available virtual machine sizes in a region](https://docs.microsoft.com/rest/api/compute/virtualmachinesizes/list) <br><br> [List all available virtual machine sizes for resizing](https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes)"
        enum:
          - Basic_A0
          - Basic_A1
          - Basic_A2
          - Basic_A3
          - Basic_A4
          - Standard_A0
          - Standard_A1
          - Standard_A2
          - Standard_A3
          - Standard_A4
          - Standard_A5
          - Standard_A6
          - Standard_A7
          - Standard_A8
          - Standard_A9
          - Standard_A10
          - Standard_A11
          - Standard_A1_v2
          - Standard_A2_v2
          - Standard_A4_v2
          - Standard_A8_v2
          - Standard_A2m_v2
          - Standard_A4m_v2
          - Standard_A8m_v2
          - Standard_B1s
          - Standard_B1ms
          - Standard_B2s
          - Standard_B2ms
          - Standard_B4ms
          - Standard_B8ms
          - Standard_D1
          - Standard_D2
          - Standard_D3
          - Standard_D4
          - Standard_D11
          - Standard_D12
          - Standard_D13
          - Standard_D14
          - Standard_D1_v2
          - Standard_D2_v2
          - Standard_D3_v2
          - Standard_D4_v2
          - Standard_D5_v2
          - Standard_D2_v3
          - Standard_D4_v3
          - Standard_D8_v3
          - Standard_D16_v3
          - Standard_D32_v3
          - Standard_D64_v3
          - Standard_D2s_v3
          - Standard_D4s_v3
          - Standard_D8s_v3
          - Standard_D16s_v3
          - Standard_D32s_v3
          - Standard_D64s_v3
          - Standard_D11_v2
          - Standard_D12_v2
          - Standard_D13_v2
          - Standard_D14_v2
          - Standard_D15_v2
          - Standard_DS1
          - Standard_DS2
          - Standard_DS3
          - Standard_DS4
          - Standard_DS11
          - Standard_DS12
          - Standard_DS13
          - Standard_DS14
          - Standard_DS1_v2
          - Standard_DS2_v2
          - Standard_DS3_v2
          - Standard_DS4_v2
          - Standard_DS5_v2
          - Standard_DS11_v2
          - Standard_DS12_v2
          - Standard_DS13_v2
          - Standard_DS14_v2
          - Standard_DS15_v2
          - Standard_DS13-4_v2
          - Standard_DS13-2_v2
          - Standard_DS14-8_v2
          - Standard_DS14-4_v2
          - Standard_E2_v3
          - Standard_E4_v3
          - Standard_E8_v3
          - Standard_E16_v3
          - Standard_E32_v3
          - Standard_E64_v3
          - Standard_E2s_v3
          - Standard_E4s_v3
          - Standard_E8s_v3
          - Standard_E16s_v3
          - Standard_E32s_v3
          - Standard_E64s_v3
          - Standard_E32-16_v3
          - Standard_E32-8s_v3
          - Standard_E64-32s_v3
          - Standard_E64-16s_v3
          - Standard_F1
          - Standard_F2
          - Standard_F4
          - Standard_F8
          - Standard_F16
          - Standard_F1s
          - Standard_F2s
          - Standard_F4s
          - Standard_F8s
          - Standard_F16s
          - Standard_F2s_v2
          - Standard_F4s_v2
          - Standard_F8s_v2
          - Standard_F16s_v2
          - Standard_F32s_v2
          - Standard_F64s_v2
          - Standard_F72s_v2
          - Standard_G1
          - Standard_G2
          - Standard_G3
          - Standard_G4
          - Standard_G5
          - Standard_GS1
          - Standard_GS2
          - Standard_GS3
          - Standard_GS4
          - Standard_GS5
          - Standard_GS4-8
          - Standard_GS4-4
          - Standard_GS5-16
          - Standard_GS5-8
          - Standard_H8
          - Standard_H16
          - Standard_H8m
          - Standard_H16m
          - Standard_H16r
          - Standard_H16mr
          - Standard_L4s
          - Standard_L8s
          - Standard_L16s
          - Standard_L32s
          - Standard_M64s
          - Standard_M64ms
          - Standard_M128s
          - Standard_M128ms
          - Standard_M64-32ms
          - Standard_M64-16ms
          - Standard_M128-64ms
          - Standard_M128-32ms
          - Standard_NC6
          - Standard_NC12
          - Standard_NC24
          - Standard_NC24r
          - Standard_NC6s_v2
          - Standard_NC12s_v2
          - Standard_NC24s_v2
          - Standard_NC24rs_v2
          - Standard_NC6s_v3
          - Standard_NC12s_v3
          - Standard_NC24s_v3
          - Standard_NC24rs_v3
          - Standard_ND6s
          - Standard_ND12s
          - Standard_ND24s
          - Standard_ND24rs
          - Standard_NV6
          - Standard_NV12
          - Standard_NV24
        type: string
        x-ms-enum:
          modelAsString: true
          name: VirtualMachineSizeTypes
  HyperVGenerationType:
    description: Specifies the HyperVGeneration Type
    enum:
      - V1
      - V2
    type: string
    x-ms-enum:
      modelAsString: true
      name: HyperVGenerationTypes
  Image:
    allOf:
      - $ref: "#/definitions/Resource"
    description: The source user image virtual hard disk. The virtual hard disk will be copied before being attached to the virtual machine. If SourceImage is provided, the destination virtual hard drive must not exist.
    properties:
      properties:
        $ref: "#/definitions/ImageProperties"
        x-ms-client-flatten: true
  ImageDataDisk:
    description: Describes a data disk.
    properties:
      blobUri:
        description: The Virtual Hard Disk.
        type: string
      caching:
        description: "Specifies the caching requirements. <br><br> Possible values are: <br><br> **None** <br><br> **ReadOnly** <br><br> **ReadWrite** <br><br> Default: **None for Standard storage. ReadOnly for Premium storage**"
        enum:
          - None
          - ReadOnly
          - ReadWrite
        type: string
        x-ms-enum:
          modelAsString: false
          name: CachingTypes
      diskSizeGB:
        description: Specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image. <br><br> This value cannot be larger than 1023 GB
        format: int32
        type: integer
      lun:
        description: Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
        format: int32
        type: integer
      managedDisk:
        $ref: "#/definitions/SubResource"
        description: The managedDisk.
      snapshot:
        $ref: "#/definitions/SubResource"
        description: The snapshot.
      storageAccountType:
        $ref: "#/definitions/StorageAccountType"
        description: "Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk."
    required:
      - lun
  ImageListResult:
    description: The List Image operation response.
    properties:
      nextLink:
        description: The uri to fetch the next page of Images. Call ListNext() with this to fetch the next page of Images.
        type: string
      value:
        description: The list of Images.
        items:
          $ref: "#/definitions/Image"
        type: array
    required:
      - value
  ImageOSDisk:
    description: Describes an Operating System disk.
    properties:
      blobUri:
        description: The Virtual Hard Disk.
        type: string
      caching:
        description: "Specifies the caching requirements. <br><br> Possible values are: <br><br> **None** <br><br> **ReadOnly** <br><br> **ReadWrite** <br><br> Default: **None for Standard storage. ReadOnly for Premium storage**"
        enum:
          - None
          - ReadOnly
          - ReadWrite
        type: string
        x-ms-enum:
          modelAsString: false
          name: CachingTypes
      diskSizeGB:
        description: Specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image. <br><br> This value cannot be larger than 1023 GB
        format: int32
        type: integer
      managedDisk:
        $ref: "#/definitions/SubResource"
        description: The managedDisk.
      osState:
        description: The OS State.
        enum:
          - Generalized
          - Specialized
        type: string
        x-ms-enum:
          modelAsString: false
          name: OperatingSystemStateTypes
      osType:
        description: "This property allows you to specify the type of the OS that is included in the disk if creating a VM from a custom image. <br><br> Possible values are: <br><br> **Windows** <br><br> **Linux**"
        enum:
          - Windows
          - Linux
        type: string
        x-ms-enum:
          modelAsString: false
          name: OperatingSystemTypes
      snapshot:
        $ref: "#/definitions/SubResource"
        description: The snapshot.
      storageAccountType:
        $ref: "#/definitions/StorageAccountType"
        description: Specifies the storage account type for the managed disk. UltraSSD_LRS cannot be used with OS Disk.
    required:
      - osType
      - osState
  ImageProperties:
    description: Describes the properties of an Image.
    properties:
      hyperVGeneration:
        $ref: "#/definitions/HyperVGenerationType"
        description: Gets the HyperVGenerationType of the VirtualMachine created from the image
      provisioningState:
        description: The provisioning state.
        readOnly: true
        type: string
      sourceVirtualMachine:
        $ref: "#/definitions/SubResource"
        description: The source virtual machine from which Image is created.
      storageProfile:
        $ref: "#/definitions/ImageStorageProfile"
        description: Specifies the storage settings for the virtual machine disks.
  ImageReference:
    allOf:
      - $ref: "#/definitions/SubResource"
    description: Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
    properties:
      offer:
        description: Specifies the offer of the platform image or marketplace image used to create the virtual machine.
        type: string
      publisher:
        description: The image publisher.
        type: string
      sku:
        description: The image SKU.
        type: string
      version:
        description: Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available.
        type: string
  ImageStorageProfile:
    description: Describes a storage profile.
    properties:
      dataDisks:
        description: Specifies the parameters that are used to add a data disk to a virtual machine. <br><br> For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).
        items:
          $ref: "#/definitions/ImageDataDisk"
        type: array
      osDisk:
        $ref: "#/definitions/ImageOSDisk"
        description: Specifies information about the operating system disk used by the virtual machine. <br><br> For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).
      zoneResilient:
        description: Specifies whether an image is zone resilient or not. Default is false. Zone resilient images can be created only in regions that provide Zone Redundant Storage (ZRS).
        type: boolean
  ImageUpdate:
    allOf:
      - $ref: "#/definitions/UpdateResource"
    description: The source user image virtual hard disk. Only tags may be updated.
    properties:
      properties:
        $ref: "#/definitions/ImageProperties"
        x-ms-client-flatten: true
  InnerError:
    description: Inner error details.
    properties:
      errordetail:
        description: The internal error message or exception dump.
        type: string
      exceptiontype:
        description: The exception type.
        type: string
  InstanceViewStatus:
    description: Instance view status.
    properties:
      code:
        description: The status code.
        type: string
      displayStatus:
        description: The short localizable label for the status.
        type: string
      level:
        description: The level code.
        enum:
          - Info
          - Warning
          - Error
        type: string
        x-ms-enum:
          modelAsString: false
          name: StatusLevelTypes
      message:
        description: The detailed status message, including for alerts and error messages.
        type: string
      time:
        description: The time of the status.
        format: date-time
        type: string
  KeyVaultKeyReference:
    description: Describes a reference to Key Vault Key
    properties:
      keyUrl:
        description: The URL referencing a key encryption key in Key Vault.
        type: string
      sourceVault:
        $ref: "#/definitions/SubResource"
        description: The relative URL of the Key Vault containing the key.
    required:
      - keyUrl
      - sourceVault
  KeyVaultSecretReference:
    description: Describes a reference to Key Vault Secret
    properties:
      secretUrl:
        description: The URL referencing a secret in a Key Vault.
        type: string
      sourceVault:
        $ref: "#/definitions/SubResource"
        description: The relative URL of the Key Vault containing the secret.
    required:
      - secretUrl
      - sourceVault
  LinuxConfiguration:
    description: Specifies the Linux operating system settings on the virtual machine. <br><br>For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-endorsed-distros?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json) <br><br> For running non-endorsed distributions, see [Information for Non-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-create-upload-generic?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json).
    properties:
      disablePasswordAuthentication:
        description: Specifies whether password authentication should be disabled.
        type: boolean
      provisionVMAgent:
        description: Indicates whether virtual machine agent should be provisioned on the virtual machine. <br><br> When this property is not specified in the request body, default behavior is to set it to true.  This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
        type: boolean
      ssh:
        $ref: "#/definitions/SshConfiguration"
        description: Specifies the ssh key configuration for a Linux OS.
  ListUsagesResult:
    description: The List Usages operation response.
    properties:
      nextLink:
        description: The URI to fetch the next page of compute resource usage information. Call ListNext() with this to fetch the next page of compute resource usage information.
        type: string
      value:
        description: The list of compute resource usages.
        items:
          $ref: "#/definitions/Usage"
        type: array
    required:
      - value
  LogAnalyticsInputBase:
    description: Api input base class for LogAnalytics Api.
    properties:
      blobContainerSasUri:
        description: SAS Uri of the logging blob container to which LogAnalytics Api writes output logs to.
        type: string
      fromTime:
        description: From time of the query
        format: date-time
        type: string
      groupByOperationName:
        description: Group query result by Operation Name.
        type: boolean
      groupByResourceName:
        description: Group query result by Resource Name.
        type: boolean
      groupByThrottlePolicy:
        description: Group query result by Throttle Policy applied.
        type: boolean
      toTime:
        description: To time of the query
        format: date-time
        type: string
    required:
      - blobContainerSasUri
      - fromTime
      - toTime
  LogAnalyticsOperationResult:
    description: LogAnalytics operation status response
    properties:
      properties:
        $ref: "#/definitions/LogAnalyticsOutput"
        description: LogAnalyticsOutput
        readOnly: true
  LogAnalyticsOutput:
    description: LogAnalytics output properties
    properties:
      output:
        description: Output file Uri path to blob container.
        readOnly: true
        type: string
  MaintenanceRedeployStatus:
    description: Maintenance Operation Status.
    properties:
      isCustomerInitiatedMaintenanceAllowed:
        description: True, if customer is allowed to perform Maintenance.
        type: boolean
      lastOperationMessage:
        description: Message returned for the last Maintenance Operation.
        type: string
      lastOperationResultCode:
        description: The Last Maintenance Operation Result Code.
        enum:
          - None
          - RetryLater
          - MaintenanceAborted
          - MaintenanceCompleted
        type: string
        x-ms-enum:
          modelAsString: false
          name: MaintenanceOperationResultCodeTypes
      maintenanceWindowEndTime:
        description: End Time for the Maintenance Window.
        format: date-time
        type: string
      maintenanceWindowStartTime:
        description: Start Time for the Maintenance Window.
        format: date-time
        type: string
      preMaintenanceWindowEndTime:
        description: End Time for the Pre Maintenance Window.
        format: date-time
        type: string
      preMaintenanceWindowStartTime:
        description: Start Time for the Pre Maintenance Window.
        format: date-time
        type: string
  ManagedDiskParameters:
    allOf:
      - $ref: "#/definitions/SubResource"
    description: The parameters of a managed disk.
    properties:
      storageAccountType:
        $ref: "#/definitions/StorageAccountType"
        description: "Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk."
  NetworkInterfaceReference:
    allOf:
      - $ref: "#/definitions/SubResource"
    description: Describes a network interface reference.
    properties:
      properties:
        $ref: "#/definitions/NetworkInterfaceReferenceProperties"
        x-ms-client-flatten: true
  NetworkInterfaceReferenceProperties:
    description: Describes a network interface reference properties.
    properties:
      primary:
        description: Specifies the primary network interface in case the virtual machine has more than 1 network interface.
        type: boolean
  NetworkProfile:
    description: Specifies the network interfaces of the virtual machine.
    properties:
      networkInterfaces:
        description: Specifies the list of resource Ids for the network interfaces associated with the virtual machine.
        items:
          $ref: "#/definitions/NetworkInterfaceReference"
        type: array
  OSDisk:
    description: Specifies information about the operating system disk used by the virtual machine. <br><br> For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).
    properties:
      caching:
        $ref: "#/definitions/Caching"
        description: "Specifies the caching requirements. <br><br> Possible values are: <br><br> **None** <br><br> **ReadOnly** <br><br> **ReadWrite** <br><br> Default: **None for Standard storage. ReadOnly for Premium storage**"
      createOption:
        $ref: "#/definitions/CreateOption"
        description: Specifies how the virtual machine should be created.<br><br> Possible values are:<br><br> **Attach** \u2013 This value is used when you are using a specialized disk to create the virtual machine.<br><br> **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you  also use the plan element previously described.
      diffDiskSettings:
        $ref: "#/definitions/DiffDiskSettings"
        description: Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine.
      diskSizeGB:
        description: Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. <br><br> This value cannot be larger than 1023 GB
        format: int32
        type: integer
      encryptionSettings:
        $ref: "#/definitions/DiskEncryptionSettings"
        description: "Specifies the encryption settings for the OS Disk. <br><br> Minimum api-version: 2015-06-15"
      image:
        $ref: "#/definitions/VirtualHardDisk"
        description: The source user image virtual hard disk. The virtual hard disk will be copied before being attached to the virtual machine. If SourceImage is provided, the destination virtual hard drive must not exist.
      managedDisk:
        $ref: "#/definitions/ManagedDiskParameters"
        description: The managed disk parameters.
      name:
        description: The disk name.
        type: string
      osType:
        description: "This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. <br><br> Possible values are: <br><br> **Windows** <br><br> **Linux**"
        enum:
          - Windows
          - Linux
        type: string
        x-ms-enum:
          modelAsString: false
          name: OperatingSystemTypes
      vhd:
        $ref: "#/definitions/VirtualHardDisk"
        description: The virtual hard disk.
      writeAcceleratorEnabled:
        description: Specifies whether writeAccelerator should be enabled or disabled on the disk.
        type: boolean
    required:
      - createOption
  OSDiskImage:
    description: Contains the os disk image information.
    properties:
      operatingSystem:
        description: The operating system of the osDiskImage.
        enum:
          - Windows
          - Linux
        type: string
        x-ms-enum:
          modelAsString: false
          name: OperatingSystemTypes
    required:
      - operatingSystem
  OSProfile:
    description: Specifies the operating system settings for the virtual machine.
    properties:
      adminPassword:
        description: Specifies the password of the administrator account. <br><br> **Minimum-length (Windows):** 8 characters <br><br> **Minimum-length (Linux):** 6 characters <br><br> **Max-length (Windows):** 123 characters <br><br> **Max-length (Linux):** 72 characters <br><br> **Complexity requirements:** 3 out of 4 conditions below need to be fulfilled <br> Has lower characters <br>Has upper characters <br> Has a digit <br> Has a special character (Regex match [\W_]) <br><br> **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" <br><br> For resetting the password, see [How to reset the Remote Desktop service or its login password in a Windows VM](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-reset-rdp?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) <br><br> For resetting root password, see [Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-vmaccess-extension?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#reset-root-password)
        type: string
      adminUsername:
        description: Specifies the name of the administrator account. <br><br> **Windows-only restriction:** Cannot end in "." <br><br> **Disallowed values:** "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". <br><br> **Minimum-length (Linux):** 1  character <br><br> **Max-length (Linux):** 64 characters <br><br> **Max-length (Windows):** 20 characters  <br><br><li> For root access to the Linux VM, see [Using root privileges on Linux virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-use-root-privileges?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)<br><li> For a list of built-in system users on Linux that should not be used in this field, see [Selecting User Names for Linux on Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-usernames?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)
        type: string
      allowExtensionOperations:
        description: Specifies whether extension operations should be allowed on the virtual machine. <br><br>This may only be set to False when no extensions are present on the virtual machine.
        type: boolean
      computerName:
        description: Specifies the host OS name of the virtual machine. <br><br> This name cannot be updated after the VM is created. <br><br> **Max-length (Windows):** 15 characters <br><br> **Max-length (Linux):** 64 characters. <br><br> For naming conventions and restrictions see [Azure infrastructure services implementation guidelines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-infrastructure-subscription-accounts-guidelines?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#1-naming-conventions).
        type: string
      customData:
        description: Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. <br><br> For using cloud-init for your VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-cloud-init?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)
        type: string
      linuxConfiguration:
        $ref: "#/definitions/LinuxConfiguration"
        description: Specifies the Linux operating system settings on the virtual machine. <br><br>For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-endorsed-distros?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json) <br><br> For running non-endorsed distributions, see [Information for Non-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-create-upload-generic?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json).
      secrets:
        description: Specifies set of certificates that should be installed onto the virtual machine.
        items:
          $ref: "#/definitions/VaultSecretGroup"
        type: array
      windowsConfiguration:
        $ref: "#/definitions/WindowsConfiguration"
        description: Specifies Windows operating system settings on the virtual machine.
  Plan:
    description: Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use.  In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started ->**. Enter any required information and then click **Save**.
    properties:
      name:
        description: The plan ID.
        type: string
      product:
        description: Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
        type: string
      promotionCode:
        description: The promotion code.
        type: string
      publisher:
        description: The publisher ID.
        type: string
  ProximityPlacementGroup:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Specifies information about the proximity placement group.
    properties:
      properties:
        $ref: "#/definitions/ProximityPlacementGroupProperties"
        description: Describes the properties of a Proximity Placement Group.
        x-ms-client-flatten: true
  ProximityPlacementGroupListResult:
    description: The List Proximity Placement Group operation response.
    properties:
      nextLink:
        description: The URI to fetch the next page of proximity placement groups.
        type: string
      value:
        description: The list of proximity placement groups
        items:
          $ref: "#/definitions/ProximityPlacementGroup"
        type: array
    required:
      - value
  ProximityPlacementGroupProperties:
    description: Describes the properties of a Proximity Placement Group.
    properties:
      availabilitySets:
        description: A list of references to all availability sets in the proximity placement group.
        items:
          $ref: "#/definitions/SubResource"
        readOnly: true
        type: array
      proximityPlacementGroupType:
        description: "Specifies the type of the proximity placement group. <br><br> Possible values are: <br><br> **Standard** : Co-locate resources within an Azure region or Availability Zone. <br><br> **Ultra** : For future use."
        enum:
          - Standard
          - Ultra
        type: string
        x-ms-enum:
          modelAsString: true
          name: ProximityPlacementGroupType
      virtualMachineScaleSets:
        description: A list of references to all virtual machine scale sets in the proximity placement group.
        items:
          $ref: "#/definitions/SubResource"
        readOnly: true
        type: array
      virtualMachines:
        description: A list of references to all virtual machines in the proximity placement group.
        items:
          $ref: "#/definitions/SubResource"
        readOnly: true
        type: array
  ProximityPlacementGroupUpdate:
    allOf:
      - $ref: "#/definitions/UpdateResource"
    description: Specifies information about the proximity placement group.
  PurchasePlan:
    description: Used for establishing the purchase context of any 3rd Party artifact through MarketPlace.
    properties:
      name:
        description: The plan ID.
        type: string
      product:
        description: Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element.
        type: string
      publisher:
        description: The publisher ID.
        type: string
    required:
      - publisher
      - name
      - product
  RecoveryWalkResponse:
    description: Response after calling a manual recovery walk
    properties:
      nextPlatformUpdateDomain:
        description: The next update domain that needs to be walked. Null means walk spanning all update domains has been completed
        readOnly: true
        type: integer
      walkPerformed:
        description: Whether the recovery walk was performed
        readOnly: true
        type: boolean
  RequestRateByIntervalInput:
    allOf:
      - $ref: "#/definitions/LogAnalyticsInputBase"
    description: Api request input for LogAnalytics getRequestRateByInterval Api.
    properties:
      intervalLength:
        description: Interval value in minutes used to create LogAnalytics call rate logs.
        enum:
          - ThreeMins
          - FiveMins
          - ThirtyMins
          - SixtyMins
        type: string
        x-ms-enum:
          modelAsString: false
          name: IntervalInMins
    required:
      - intervalLength
  Resource:
    description: The Resource model definition.
    properties:
      id:
        description: Resource Id
        readOnly: true
        type: string
      location:
        description: Resource location
        type: string
      name:
        description: Resource name
        readOnly: true
        type: string
      tags:
        additionalProperties:
          type: string
        description: Resource tags
        type: object
      type:
        description: Resource type
        readOnly: true
        type: string
    required:
      - location
    x-ms-azure-resource: true
  RollbackStatusInfo:
    description: Information about rollback on failed VM instances after a OS Upgrade operation.
    properties:
      failedRolledbackInstanceCount:
        description: The number of instances which failed to rollback.
        format: int32
        readOnly: true
        type: integer
      rollbackError:
        $ref: "#/definitions/ApiError"
        description: Error details if OS rollback failed.
        readOnly: true
      successfullyRolledbackInstanceCount:
        description: The number of instances which have been successfully rolled back.
        format: int32
        readOnly: true
        type: integer
  RollingUpgradePolicy:
    description: The configuration parameters used while performing a rolling upgrade.
    properties:
      maxBatchInstancePercent:
        description: The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. The default value for this parameter is 20%.
        format: int32
        maximum: 100
        minimum: 5
        type: integer
      maxUnhealthyInstancePercent:
        description: The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The default value for this parameter is 20%.
        format: int32
        maximum: 100
        minimum: 5
        type: integer
      maxUnhealthyUpgradedInstancePercent:
        description: The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. The default value for this parameter is 20%.
        format: int32
        maximum: 100
        minimum: 0
        type: integer
      pauseTimeBetweenBatches:
        description: The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format. The default value is 0 seconds (PT0S).
        type: string
  RollingUpgradeProgressInfo:
    description: Information about the number of virtual machine instances in each upgrade state.
    properties:
      failedInstanceCount:
        description: The number of instances that have failed to be upgraded successfully.
        format: int32
        readOnly: true
        type: integer
      inProgressInstanceCount:
        description: The number of instances that are currently being upgraded.
        format: int32
        readOnly: true
        type: integer
      pendingInstanceCount:
        description: The number of instances that have not yet begun to be upgraded.
        format: int32
        readOnly: true
        type: integer
      successfulInstanceCount:
        description: The number of instances that have been successfully upgraded.
        format: int32
        readOnly: true
        type: integer
  RollingUpgradeRunningStatus:
    description: Information about the current running state of the overall upgrade.
    properties:
      code:
        description: Code indicating the current status of the upgrade.
        enum:
          - RollingForward
          - Cancelled
          - Completed
          - Faulted
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: false
          name: RollingUpgradeStatusCode
      lastAction:
        description: The last action performed on the rolling upgrade.
        enum:
          - Start
          - Cancel
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: false
          name: RollingUpgradeActionType
      lastActionTime:
        description: Last action time of the upgrade.
        format: date-time
        readOnly: true
        type: string
      startTime:
        description: Start time of the upgrade.
        format: date-time
        readOnly: true
        type: string
  RollingUpgradeStatusInfo:
    allOf:
      - $ref: "#/definitions/Resource"
    description: The status of the latest virtual machine scale set rolling upgrade.
    properties:
      properties:
        $ref: "#/definitions/RollingUpgradeStatusInfoProperties"
        x-ms-client-flatten: true
  RollingUpgradeStatusInfoProperties:
    description: The status of the latest virtual machine scale set rolling upgrade.
    properties:
      error:
        $ref: "#/definitions/ApiError"
        description: Error details for this upgrade, if there are any.
        readOnly: true
      policy:
        $ref: "#/definitions/RollingUpgradePolicy"
        description: The rolling upgrade policies applied for this upgrade.
        readOnly: true
      progress:
        $ref: "#/definitions/RollingUpgradeProgressInfo"
        description: Information about the number of virtual machine instances in each upgrade state.
        readOnly: true
      runningStatus:
        $ref: "#/definitions/RollingUpgradeRunningStatus"
        description: Information about the current running state of the overall upgrade.
        readOnly: true
  ScaleInPolicy:
    description: Describes a scale-in policy for a virtual machine scale set.
    properties:
      rules:
        description: "The rules to be followed when scaling-in a virtual machine scale set. <br><br> Possible values are: <br><br> **Default** When a virtual machine scale set is scaled in, the scale set will first be balanced across zones if it is a zonal scale set. Then, it will be balanced across Fault Domains as far as possible. Within each Fault Domain, the virtual machines chosen for removal will be the newest ones that are not protected from scale-in. <br><br> **OldestVM** When a virtual machine scale set is being scaled-in, the oldest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the oldest virtual machines that are not protected will be chosen for removal. <br><br> **NewestVM** When a virtual machine scale set is being scaled-in, the newest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the newest virtual machines that are not protected will be chosen for removal. <br><br>"
        items:
          enum:
            - Default
            - OldestVM
            - NewestVM
          type: string
          x-ms-enum:
            modelAsString: true
            name: VirtualMachineScaleSetScaleInRules
        type: array
  ScheduledEventsProfile:
    properties:
      terminateNotificationProfile:
        $ref: "#/definitions/TerminateNotificationProfile"
        description: Specifies Terminate Scheduled Event related configurations.
    type: object
  Sku:
    description: Describes a virtual machine scale set sku.
    properties:
      capacity:
        description: Specifies the number of virtual machines in the scale set.
        format: int64
        type: integer
      name:
        description: The sku name.
        type: string
      tier:
        description: Specifies the tier of virtual machines in a scale set.<br /><br /> Possible Values:<br /><br /> **Standard**<br /><br /> **Basic**
        type: string
  SshConfiguration:
    description: SSH configuration for Linux based VMs running on Azure
    properties:
      publicKeys:
        description: The list of SSH public keys used to authenticate with linux based VMs.
        items:
          $ref: "#/definitions/SshPublicKey"
        type: array
  SshPublicKey:
    description: Contains information about SSH certificate public key and the path on the Linux VM where the public key is placed.
    properties:
      keyData:
        description: SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. <br><br> For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-mac-create-ssh-keys?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json).
        type: string
      path:
        description: "Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys"
        type: string
  StorageAccountType:
    description: "Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk."
    enum:
      - Standard_LRS
      - Premium_LRS
      - StandardSSD_LRS
      - UltraSSD_LRS
    type: string
    x-ms-enum:
      modelAsString: true
      name: StorageAccountTypes
  StorageProfile:
    description: Specifies the storage settings for the virtual machine disks.
    properties:
      dataDisks:
        description: Specifies the parameters that are used to add a data disk to a virtual machine. <br><br> For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).
        items:
          $ref: "#/definitions/DataDisk"
        type: array
      imageReference:
        $ref: "#/definitions/ImageReference"
        description: Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
      osDisk:
        $ref: "#/definitions/OSDisk"
        description: Specifies information about the operating system disk used by the virtual machine. <br><br> For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).
  SubResource:
    properties:
      id:
        description: Resource Id
        type: string
    x-ms-azure-resource: true
  SubResourceReadOnly:
    properties:
      id:
        description: Resource Id
        readOnly: true
        type: string
    x-ms-azure-resource: true
  TerminateNotificationProfile:
    properties:
      enable:
        description: Specifies whether the Terminate Scheduled event is enabled or disabled.
        type: boolean
      notBeforeTimeout:
        description: Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)
        type: string
    type: object
  ThrottledRequestsInput:
    allOf:
      - $ref: "#/definitions/LogAnalyticsInputBase"
    description: Api request input for LogAnalytics getThrottledRequests Api.
  UpdateResource:
    description: The Update Resource model definition.
    properties:
      tags:
        additionalProperties:
          type: string
        description: Resource tags
        type: object
    x-ms-azure-resource: true
  UpgradeOperationHistoricalStatusInfo:
    description: Virtual Machine Scale Set OS Upgrade History operation response.
    properties:
      location:
        description: Resource location
        readOnly: true
        type: string
      properties:
        $ref: "#/definitions/UpgradeOperationHistoricalStatusInfoProperties"
        description: Information about the properties of the upgrade operation.
        readOnly: true
      type:
        description: Resource type
        readOnly: true
        type: string
  UpgradeOperationHistoricalStatusInfoProperties:
    description: Describes each OS upgrade on the Virtual Machine Scale Set.
    properties:
      error:
        $ref: "#/definitions/ApiError"
        description: Error Details for this upgrade if there are any.
        readOnly: true
      progress:
        $ref: "#/definitions/RollingUpgradeProgressInfo"
        description: Counts of the VMs in each state.
        readOnly: true
      rollbackInfo:
        $ref: "#/definitions/RollbackStatusInfo"
        description: Information about OS rollback if performed
        readOnly: true
      runningStatus:
        $ref: "#/definitions/UpgradeOperationHistoryStatus"
        description: Information about the overall status of the upgrade operation.
        readOnly: true
      startedBy:
        description: Invoker of the Upgrade Operation
        enum:
          - Unknown
          - User
          - Platform
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: false
          name: UpgradeOperationInvoker
      targetImageReference:
        $ref: "#/definitions/ImageReference"
        description: Image Reference details
        readOnly: true
  UpgradeOperationHistoryStatus:
    description: Information about the current running state of the overall upgrade.
    properties:
      code:
        description: Code indicating the current status of the upgrade.
        enum:
          - RollingForward
          - Cancelled
          - Completed
          - Faulted
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: false
          name: UpgradeState
      endTime:
        description: End time of the upgrade.
        format: date-time
        readOnly: true
        type: string
      startTime:
        description: Start time of the upgrade.
        format: date-time
        readOnly: true
        type: string
  UpgradePolicy:
    description: Describes an upgrade policy - automatic, manual, or rolling.
    properties:
      automaticOSUpgradePolicy:
        $ref: "#/definitions/AutomaticOSUpgradePolicy"
        description: Configuration parameters used for performing automatic OS Upgrade.
      mode:
        description: Specifies the mode of an upgrade to virtual machines in the scale set.<br /><br /> Possible values are:<br /><br /> **Manual** - You  control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action.<br /><br /> **Automatic** - All virtual machines in the scale set are  automatically updated at the same time.
        enum:
          - Automatic
          - Manual
          - Rolling
        type: string
        x-ms-enum:
          modelAsString: false
          name: UpgradeMode
      rollingUpgradePolicy:
        $ref: "#/definitions/RollingUpgradePolicy"
        description: The configuration parameters used while performing a rolling upgrade.
  Usage:
    description: Describes Compute Resource Usage.
    properties:
      currentValue:
        description: The current usage of the resource.
        format: int32
        type: integer
      limit:
        description: The maximum permitted usage of the resource.
        format: int64
        type: integer
      name:
        $ref: "#/definitions/UsageName"
        description: The name of the type of usage.
      unit:
        description: An enum describing the unit of usage measurement.
        enum:
          - Count
        type: string
        x-ms-enum:
          modelAsString: false
          name: UsageUnit
    required:
      - unit
      - currentValue
      - limit
      - name
  UsageName:
    description: The Usage Names.
    properties:
      localizedValue:
        description: The localized name of the resource.
        type: string
      value:
        description: The name of the resource.
        type: string
  VMScaleSetConvertToSinglePlacementGroupInput:
    properties:
      activePlacementGroupId:
        description: Id of the placement group in which you want future virtual machine instances to be placed. To query placement group Id, please use Virtual Machine Scale Set VMs - Get API. If not provided, the platform will choose one with maximum number of virtual machine instances.
        type: string
  VaultCertificate:
    description: Describes a single certificate reference in a Key Vault, and where the certificate should reside on the VM.
    properties:
      certificateStore:
        description: For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. <br><br>For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name &lt;UppercaseThumbprint&gt;.crt for the X509 certificate file and &lt;UppercaseThumbprint&gt;.prv for private key. Both of these files are .pem formatted.
        type: string
      certificateUrl:
        description: 'This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: <br><br> {<br>  "data":"<Base64-encoded-certificate>",<br>  "dataType":"pfx",<br>  "password":"<pfx-file-password>"<br>}'
        type: string
  VaultSecretGroup:
    description: Describes a set of certificates which are all in the same Key Vault.
    properties:
      sourceVault:
        $ref: "#/definitions/SubResource"
        description: The relative URL of the Key Vault containing all of the certificates in VaultCertificates.
      vaultCertificates:
        description: The list of key vault references in SourceVault which contain certificates.
        items:
          $ref: "#/definitions/VaultCertificate"
        type: array
  VirtualHardDisk:
    description: Describes the uri of a disk.
    properties:
      uri:
        description: Specifies the virtual hard disk's uri.
        type: string
  VirtualMachine:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Describes a Virtual Machine.
    properties:
      identity:
        $ref: "#/definitions/VirtualMachineIdentity"
        description: The identity of the virtual machine, if configured.
      plan:
        $ref: "#/definitions/Plan"
        description: Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use.  In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started ->**. Enter any required information and then click **Save**.
      properties:
        $ref: "#/definitions/VirtualMachineProperties"
        x-ms-client-flatten: true
      resources:
        description: The virtual machine child extension resources.
        items:
          $ref: "#/definitions/VirtualMachineExtension"
        readOnly: true
        type: array
      zones:
        description: The virtual machine zones.
        items:
          type: string
        type: array
  VirtualMachineAgentInstanceView:
    description: The instance view of the VM Agent running on the virtual machine.
    properties:
      extensionHandlers:
        description: The virtual machine extension handler instance view.
        items:
          $ref: "#/definitions/VirtualMachineExtensionHandlerInstanceView"
        type: array
      statuses:
        description: The resource status information.
        items:
          $ref: "#/definitions/InstanceViewStatus"
        type: array
      vmAgentVersion:
        description: The VM Agent full version.
        type: string
  VirtualMachineCaptureParameters:
    description: Capture Virtual Machine parameters.
    properties:
      destinationContainerName:
        description: The destination container name.
        type: string
      overwriteVhds:
        description: Specifies whether to overwrite the destination virtual hard disk, in case of conflict.
        type: boolean
      vhdPrefix:
        description: The captured virtual hard disk's name prefix.
        type: string
    required:
      - vhdPrefix
      - destinationContainerName
      - overwriteVhds
  VirtualMachineCaptureResult:
    allOf:
      - $ref: "#/definitions/SubResource"
    description: Output of virtual machine capture operation.
    properties:
      $schema:
        description: the schema of the captured virtual machine
        readOnly: true
        type: string
      contentVersion:
        description: the version of the content
        readOnly: true
        type: string
      parameters:
        description: parameters of the captured virtual machine
        readOnly: true
        type: object
      resources:
        description: a list of resource items of the captured virtual machine
        items:
          description: resource item
          type: object
        readOnly: true
        type: array
  VirtualMachineExtension:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Describes a Virtual Machine Extension.
    properties:
      properties:
        $ref: "#/definitions/VirtualMachineExtensionProperties"
        x-ms-client-flatten: true
  VirtualMachineExtensionHandlerInstanceView:
    description: The instance view of a virtual machine extension handler.
    properties:
      status:
        $ref: "#/definitions/InstanceViewStatus"
        description: The extension handler status.
      type:
        description: Specifies the type of the extension; an example is "CustomScriptExtension".
        type: string
      typeHandlerVersion:
        description: Specifies the version of the script handler.
        type: string
  VirtualMachineExtensionImage:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Describes a Virtual Machine Extension Image.
    properties:
      properties:
        $ref: "#/definitions/VirtualMachineExtensionImageProperties"
        x-ms-client-flatten: true
    required:
      - name
      - location
  VirtualMachineExtensionImageProperties:
    description: Describes the properties of a Virtual Machine Extension Image.
    properties:
      computeRole:
        description: The type of role (IaaS or PaaS) this extension supports.
        type: string
      handlerSchema:
        description: The schema defined by publisher, where extension consumers should provide settings in a matching schema.
        type: string
      operatingSystem:
        description: The operating system this extension supports.
        type: string
      supportsMultipleExtensions:
        description: Whether the handler can support multiple extensions.
        type: boolean
      vmScaleSetEnabled:
        description: Whether the extension can be used on xRP VMScaleSets. By default existing extensions are usable on scalesets, but there might be cases where a publisher wants to explicitly indicate the extension is only enabled for CRP VMs but not VMSS.
        type: boolean
    required:
      - operatingSystem
      - computeRole
      - handlerSchema
  VirtualMachineExtensionInstanceView:
    description: The instance view of a virtual machine extension.
    properties:
      name:
        description: The virtual machine extension name.
        type: string
      statuses:
        description: The resource status information.
        items:
          $ref: "#/definitions/InstanceViewStatus"
        type: array
      substatuses:
        description: The resource status information.
        items:
          $ref: "#/definitions/InstanceViewStatus"
        type: array
      type:
        description: Specifies the type of the extension; an example is "CustomScriptExtension".
        type: string
      typeHandlerVersion:
        description: Specifies the version of the script handler.
        type: string
  VirtualMachineExtensionProperties:
    description: Describes the properties of a Virtual Machine Extension.
    properties:
      autoUpgradeMinorVersion:
        description: Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
        type: boolean
      forceUpdateTag:
        description: How the extension handler should be forced to update even if the extension configuration has not changed.
        type: string
      instanceView:
        $ref: "#/definitions/VirtualMachineExtensionInstanceView"
        description: The virtual machine extension instance view.
      protectedSettings:
        description: The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
        type: object
      provisioningState:
        description: The provisioning state, which only appears in the response.
        readOnly: true
        type: string
      publisher:
        description: The name of the extension handler publisher.
        type: string
      settings:
        description: Json formatted public settings for the extension.
        type: object
      type:
        description: Specifies the type of the extension; an example is "CustomScriptExtension".
        type: string
      typeHandlerVersion:
        description: Specifies the version of the script handler.
        type: string
  VirtualMachineExtensionUpdate:
    allOf:
      - $ref: "#/definitions/UpdateResource"
    description: Describes a Virtual Machine Extension.
    properties:
      properties:
        $ref: "#/definitions/VirtualMachineExtensionUpdateProperties"
        x-ms-client-flatten: true
  VirtualMachineExtensionUpdateProperties:
    description: Describes the properties of a Virtual Machine Extension.
    properties:
      autoUpgradeMinorVersion:
        description: Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
        type: boolean
      forceUpdateTag:
        description: How the extension handler should be forced to update even if the extension configuration has not changed.
        type: string
      protectedSettings:
        description: The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
        type: object
      publisher:
        description: The name of the extension handler publisher.
        type: string
      settings:
        description: Json formatted public settings for the extension.
        type: object
      type:
        description: Specifies the type of the extension; an example is "CustomScriptExtension".
        type: string
      typeHandlerVersion:
        description: Specifies the version of the script handler.
        type: string
  VirtualMachineExtensionsListResult:
    description: The List Extension operation response
    properties:
      value:
        description: The list of extensions
        items:
          $ref: "#/definitions/VirtualMachineExtension"
        type: array
  VirtualMachineHealthStatus:
    description: The health status of the VM.
    properties:
      status:
        $ref: "#/definitions/InstanceViewStatus"
        description: The health status information for the VM.
        readOnly: true
  VirtualMachineIdentity:
    description: Identity for the virtual machine.
    properties:
      principalId:
        description: The principal id of virtual machine identity. This property will only be provided for a system assigned identity.
        readOnly: true
        type: string
      tenantId:
        description: The tenant id associated with the virtual machine. This property will only be provided for a system assigned identity.
        readOnly: true
        type: string
      type:
        description: The type of identity used for the virtual machine. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine.
        enum:
          - SystemAssigned
          - UserAssigned
          - SystemAssigned, UserAssigned
          - None
        type: string
        x-ms-enum:
          modelAsString: false
          name: ResourceIdentityType
      userAssignedIdentities:
        additionalProperties:
          properties:
            clientId:
              description: The client id of user assigned identity.
              readOnly: true
              type: string
            principalId:
              description: The principal id of user assigned identity.
              readOnly: true
              type: string
          type: object
        description: "The list of user identities associated with the Virtual Machine. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'."
        type: object
  VirtualMachineImage:
    allOf:
      - $ref: "#/definitions/VirtualMachineImageResource"
    description: Describes a Virtual Machine Image.
    properties:
      properties:
        $ref: "#/definitions/VirtualMachineImageProperties"
        x-ms-client-flatten: true
    required:
      - name
      - location
  VirtualMachineImageProperties:
    description: Describes the properties of a Virtual Machine Image.
    properties:
      automaticOSUpgradeProperties:
        $ref: "#/definitions/AutomaticOSUpgradeProperties"
      dataDiskImages:
        items:
          $ref: "#/definitions/DataDiskImage"
        type: array
      hyperVGeneration:
        $ref: "#/definitions/HyperVGenerationType"
      osDiskImage:
        $ref: "#/definitions/OSDiskImage"
      plan:
        $ref: "#/definitions/PurchasePlan"
  VirtualMachineImageResource:
    allOf:
      - $ref: "#/definitions/SubResource"
    description: Virtual machine image resource information.
    properties:
      location:
        description: The supported Azure location of the resource.
        type: string
      name:
        description: The name of the resource.
        type: string
      tags:
        additionalProperties:
          type: string
        description: Specifies the tags that are assigned to the virtual machine. For more information about using tags, see [Using tags to organize your Azure resources](https://docs.microsoft.com/azure/azure-resource-manager/resource-group-using-tags.md).
        type: object
    required:
      - name
      - location
  VirtualMachineInstanceView:
    description: The instance view of a virtual machine.
    properties:
      bootDiagnostics:
        $ref: "#/definitions/BootDiagnosticsInstanceView"
        description: Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. <br><br> You can easily view the output of your console log. <br><br> Azure also enables you to see a screenshot of the VM from the hypervisor.
      computerName:
        description: The computer name assigned to the virtual machine.
        type: string
      disks:
        description: The virtual machine disk information.
        items:
          $ref: "#/definitions/DiskInstanceView"
        type: array
      extensions:
        description: The extensions information.
        items:
          $ref: "#/definitions/VirtualMachineExtensionInstanceView"
        type: array
      hyperVGeneration:
        description: Specifies the HyperVGeneration Type associated with a resource
        enum:
          - V1
          - V2
        type: string
        x-ms-enum:
          modelAsString: true
          name: HyperVGenerationType
      maintenanceRedeployStatus:
        $ref: "#/definitions/MaintenanceRedeployStatus"
        description: The Maintenance Operation status on the virtual machine.
      osName:
        description: The Operating System running on the virtual machine.
        type: string
      osVersion:
        description: The version of Operating System running on the virtual machine.
        type: string
      platformFaultDomain:
        description: Specifies the fault domain of the virtual machine.
        format: int32
        type: integer
      platformUpdateDomain:
        description: Specifies the update domain of the virtual machine.
        format: int32
        type: integer
      rdpThumbPrint:
        description: The Remote desktop certificate thumbprint.
        type: string
      statuses:
        description: The resource status information.
        items:
          $ref: "#/definitions/InstanceViewStatus"
        type: array
      vmAgent:
        $ref: "#/definitions/VirtualMachineAgentInstanceView"
        description: The VM Agent running on the virtual machine.
  VirtualMachineListResult:
    description: The List Virtual Machine operation response.
    properties:
      nextLink:
        description: The URI to fetch the next page of VMs. Call ListNext() with this URI to fetch the next page of Virtual Machines.
        type: string
      value:
        description: The list of virtual machines.
        items:
          $ref: "#/definitions/VirtualMachine"
        type: array
    required:
      - value
  VirtualMachineProperties:
    description: Describes the properties of a Virtual Machine.
    properties:
      additionalCapabilities:
        $ref: "#/definitions/AdditionalCapabilities"
        description: Specifies additional capabilities enabled or disabled on the virtual machine.
      availabilitySet:
        $ref: "#/definitions/SubResource"
        description: Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Manage the availability of virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). <br><br> For more information on Azure planned maintenance, see [Planned maintenance for virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) <br><br> Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set. <br><br>This property cannot exist along with a non-null properties.virtualMachineScaleSet reference.
      billingProfile:
        $ref: "#/definitions/BillingProfile"
        description: "Specifies the billing related details of a low priority virtual machine. <br><br>Minimum api-version: 2019-03-01."
      diagnosticsProfile:
        $ref: "#/definitions/DiagnosticsProfile"
        description: "Specifies the boot diagnostic settings state. <br><br>Minimum api-version: 2015-06-15."
      evictionPolicy:
        description: "Specifies the eviction policy for the low priority virtual machine. Only supported value is 'Deallocate'. <br><br>Minimum api-version: 2019-03-01"
        enum:
          - Deallocate
          - Delete
        type: string
        x-ms-enum:
          modelAsString: true
          name: VirtualMachineEvictionPolicyTypes
      hardwareProfile:
        $ref: "#/definitions/HardwareProfile"
        description: Specifies the hardware settings for the virtual machine.
      host:
        $ref: "#/definitions/SubResource"
        description: "Specifies information about the dedicated host that the virtual machine resides in. <br><br>Minimum api-version: 2018-10-01."
      instanceView:
        $ref: "#/definitions/VirtualMachineInstanceView"
        description: The virtual machine instance view.
        readOnly: true
      licenseType:
        description: "Specifies that the image or disk that is being used was licensed on-premises. This element is only used for images that contain the Windows Server operating system. <br><br> Possible values are: <br><br> Windows_Client <br><br> Windows_Server <br><br> If this element is included in a request for an update, the value must match the initial value. This value cannot be updated. <br><br> For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-hybrid-use-benefit-licensing?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) <br><br> Minimum api-version: 2015-06-15"
        type: string
      networkProfile:
        $ref: "#/definitions/NetworkProfile"
        description: Specifies the network interfaces of the virtual machine.
      osProfile:
        $ref: "#/definitions/OSProfile"
        description: Specifies the operating system settings for the virtual machine.
      priority:
        description: "Specifies the priority for the virtual machine. <br><br>Minimum api-version: 2019-03-01"
        enum:
          - Regular
          - Low
        type: string
        x-ms-enum:
          modelAsString: true
          name: VirtualMachinePriorityTypes
      provisioningState:
        description: The provisioning state, which only appears in the response.
        readOnly: true
        type: string
      proximityPlacementGroup:
        $ref: "#/definitions/SubResource"
        description: "Specifies information about the proximity placement group that the virtual machine should be assigned to. <br><br>Minimum api-version: 2018-04-01."
      storageProfile:
        $ref: "#/definitions/StorageProfile"
        description: Specifies the storage settings for the virtual machine disks.
      virtualMachineScaleSet:
        $ref: "#/definitions/SubResource"
        description: "Specifies information about the virtual machine scale set that the virtual machine should be assigned to. Virtual machines specified in the same virtual machine scale set are allocated to different nodes to maximize availability. Currently, a VM can only be added to virtual machine scale set at creation time. An existing VM cannot be added to a virtual machine scale set. <br><br>This property cannot exist along with a non-null properties.availabilitySet reference. <br><br>Minimum api‐version: 2019‐03‐01"
      vmId:
        description: Specifies the VM unique ID which is a 128-bits identifier that is encoded and stored in all Azure IaaS VMs SMBIOS and can be read using platform BIOS commands.
        readOnly: true
        type: string
  VirtualMachineReimageParameters:
    description: "Parameters for Reimaging Virtual Machine. NOTE: Virtual Machine OS disk will always be reimaged"
    properties:
      tempDisk:
        description: "Specifies whether to reimage temp disk. Default value: false. Note: This temp disk reimage parameter is only supported for VM/VMSS with Ephemeral OS disk."
        type: boolean
  VirtualMachineScaleSet:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Describes a Virtual Machine Scale Set.
    properties:
      identity:
        $ref: "#/definitions/VirtualMachineScaleSetIdentity"
        description: The identity of the virtual machine scale set, if configured.
      plan:
        $ref: "#/definitions/Plan"
        description: Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use.  In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started ->**. Enter any required information and then click **Save**.
      properties:
        $ref: "#/definitions/VirtualMachineScaleSetProperties"
        x-ms-client-flatten: true
      sku:
        $ref: "#/definitions/Sku"
        description: The virtual machine scale set sku.
      zones:
        description: The virtual machine scale set zones.
        items:
          type: string
        type: array
  VirtualMachineScaleSetDataDisk:
    description: Describes a virtual machine scale set data disk.
    properties:
      caching:
        $ref: "#/definitions/Caching"
        description: "Specifies the caching requirements. <br><br> Possible values are: <br><br> **None** <br><br> **ReadOnly** <br><br> **ReadWrite** <br><br> Default: **None for Standard storage. ReadOnly for Premium storage**"
      createOption:
        $ref: "#/definitions/CreateOption"
        description: The create option.
      diskSizeGB:
        description: Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. <br><br> This value cannot be larger than 1023 GB
        format: int32
        type: integer
      lun:
        description: Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
        format: int32
        type: integer
      managedDisk:
        $ref: "#/definitions/VirtualMachineScaleSetManagedDiskParameters"
        description: The managed disk parameters.
      name:
        description: The disk name.
        type: string
      writeAcceleratorEnabled:
        description: Specifies whether writeAccelerator should be enabled or disabled on the disk.
        type: boolean
    required:
      - lun
      - createOption
  VirtualMachineScaleSetExtension:
    allOf:
      - $ref: "#/definitions/SubResourceReadOnly"
    description: Describes a Virtual Machine Scale Set Extension.
    properties:
      name:
        description: The name of the extension.
        type: string
      properties:
        $ref: "#/definitions/VirtualMachineScaleSetExtensionProperties"
        x-ms-client-flatten: true
  VirtualMachineScaleSetExtensionListResult:
    description: The List VM scale set extension operation response.
    properties:
      nextLink:
        description: The uri to fetch the next page of VM scale set extensions. Call ListNext() with this to fetch the next page of VM scale set extensions.
        type: string
      value:
        description: The list of VM scale set extensions.
        items:
          $ref: "#/definitions/VirtualMachineScaleSetExtension"
        type: array
    required:
      - value
  VirtualMachineScaleSetExtensionProfile:
    description: Describes a virtual machine scale set extension profile.
    properties:
      extensions:
        description: The virtual machine scale set child extension resources.
        items:
          $ref: "#/definitions/VirtualMachineScaleSetExtension"
        type: array
  VirtualMachineScaleSetExtensionProperties:
    description: Describes the properties of a Virtual Machine Scale Set Extension.
    properties:
      autoUpgradeMinorVersion:
        description: Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
        type: boolean
      forceUpdateTag:
        description: If a value is provided and is different from the previous value, the extension handler will be forced to update even if the extension configuration has not changed.
        type: string
      protectedSettings:
        description: The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
        type: object
      provisionAfterExtensions:
        description: Collection of extension names after which this extension needs to be provisioned.
        items:
          type: string
        type: array
      provisioningState:
        description: The provisioning state, which only appears in the response.
        readOnly: true
        type: string
      publisher:
        description: The name of the extension handler publisher.
        type: string
      settings:
        description: Json formatted public settings for the extension.
        type: object
      type:
        description: Specifies the type of the extension; an example is "CustomScriptExtension".
        type: string
      typeHandlerVersion:
        description: Specifies the version of the script handler.
        type: string
  VirtualMachineScaleSetIPConfiguration:
    allOf:
      - $ref: "#/definitions/SubResource"
    description: Describes a virtual machine scale set network profile's IP configuration.
    properties:
      name:
        description: The IP configuration name.
        type: string
      properties:
        $ref: "#/definitions/VirtualMachineScaleSetIPConfigurationProperties"
        x-ms-client-flatten: true
    required:
      - name
  VirtualMachineScaleSetIPConfigurationProperties:
    description: Describes a virtual machine scale set network profile's IP configuration properties.
    properties:
      applicationGatewayBackendAddressPools:
        description: Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets cannot use the same application gateway.
        items:
          $ref: "#/definitions/SubResource"
        type: array
      applicationSecurityGroups:
        description: Specifies an array of references to application security group.
        items:
          $ref: "#/definitions/SubResource"
        type: array
      loadBalancerBackendAddressPools:
        description: Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer.
        items:
          $ref: "#/definitions/SubResource"
        type: array
      loadBalancerInboundNatPools:
        description: Specifies an array of references to inbound Nat pools of the load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same load balancer
        items:
          $ref: "#/definitions/SubResource"
        type: array
      primary:
        description: Specifies the primary network interface in case the virtual machine has more than 1 network interface.
        type: boolean
      privateIPAddressVersion:
        description: "Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4.  Possible values are: 'IPv4' and 'IPv6'."
        enum:
          - IPv4
          - IPv6
        type: string
        x-ms-enum:
          modelAsString: true
          name: IPVersion
      publicIPAddressConfiguration:
        $ref: "#/definitions/VirtualMachineScaleSetPublicIPAddressConfiguration"
        description: The publicIPAddressConfiguration.
      subnet:
        $ref: "#/definitions/ApiEntityReference"
        description: Specifies the identifier of the subnet.
  VirtualMachineScaleSetIdentity:
    description: Identity for the virtual machine scale set.
    properties:
      principalId:
        description: The principal id of virtual machine scale set identity. This property will only be provided for a system assigned identity.
        readOnly: true
        type: string
      tenantId:
        description: The tenant id associated with the virtual machine scale set. This property will only be provided for a system assigned identity.
        readOnly: true
        type: string
      type:
        description: The type of identity used for the virtual machine scale set. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine scale set.
        enum:
          - SystemAssigned
          - UserAssigned
          - SystemAssigned, UserAssigned
          - None
        type: string
        x-ms-enum:
          modelAsString: false
          name: ResourceIdentityType
      userAssignedIdentities:
        additionalProperties:
          properties:
            clientId:
              description: The client id of user assigned identity.
              readOnly: true
              type: string
            principalId:
              description: The principal id of user assigned identity.
              readOnly: true
              type: string
          type: object
        description: "The list of user identities associated with the virtual machine scale set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'."
        type: object
  VirtualMachineScaleSetInstanceView:
    description: The instance view of a virtual machine scale set.
    properties:
      extensions:
        description: The extensions information.
        items:
          $ref: "#/definitions/VirtualMachineScaleSetVMExtensionsSummary"
        readOnly: true
        type: array
      statuses:
        description: The resource status information.
        items:
          $ref: "#/definitions/InstanceViewStatus"
        type: array
      virtualMachine:
        $ref: "#/definitions/VirtualMachineScaleSetInstanceViewStatusesSummary"
        description: The instance view status summary for the virtual machine scale set.
        readOnly: true
  VirtualMachineScaleSetInstanceViewStatusesSummary:
    description: Instance view statuses summary for virtual machines of a virtual machine scale set.
    properties:
      statusesSummary:
        description: The extensions information.
        items:
          $ref: "#/definitions/VirtualMachineStatusCodeCount"
        readOnly: true
        type: array
  VirtualMachineScaleSetIpTag:
    description: Contains the IP tag associated with the public IP address.
    properties:
      ipTagType:
        description: "IP tag type. Example: FirstPartyUsage."
        type: string
      tag:
        description: "IP tag associated with the public IP. Example: SQL, Storage etc."
        type: string
  VirtualMachineScaleSetListOSUpgradeHistory:
    description: List of Virtual Machine Scale Set OS Upgrade History operation response.
    properties:
      nextLink:
        description: The uri to fetch the next page of OS Upgrade History. Call ListNext() with this to fetch the next page of history of upgrades.
        type: string
      value:
        description: The list of OS upgrades performed on the virtual machine scale set.
        items:
          $ref: "#/definitions/UpgradeOperationHistoricalStatusInfo"
        type: array
    required:
      - value
  VirtualMachineScaleSetListResult:
    description: The List Virtual Machine operation response.
    properties:
      nextLink:
        description: The uri to fetch the next page of Virtual Machine Scale Sets. Call ListNext() with this to fetch the next page of VMSS.
        type: string
      value:
        description: The list of virtual machine scale sets.
        items:
          $ref: "#/definitions/VirtualMachineScaleSet"
        type: array
    required:
      - value
  VirtualMachineScaleSetListSkusResult:
    description: The Virtual Machine Scale Set List Skus operation response.
    properties:
      nextLink:
        description: The uri to fetch the next page of Virtual Machine Scale Set Skus. Call ListNext() with this to fetch the next page of VMSS Skus.
        type: string
      value:
        description: The list of skus available for the virtual machine scale set.
        items:
          $ref: "#/definitions/VirtualMachineScaleSetSku"
        type: array
    required:
      - value
  VirtualMachineScaleSetListWithLinkResult:
    description: The List Virtual Machine operation response.
    properties:
      nextLink:
        description: The uri to fetch the next page of Virtual Machine Scale Sets. Call ListNext() with this to fetch the next page of Virtual Machine Scale Sets.
        type: string
      value:
        description: The list of virtual machine scale sets.
        items:
          $ref: "#/definitions/VirtualMachineScaleSet"
        type: array
    required:
      - value
  VirtualMachineScaleSetManagedDiskParameters:
    description: Describes the parameters of a ScaleSet managed disk.
    properties:
      storageAccountType:
        $ref: "#/definitions/StorageAccountType"
        description: "Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk."
  VirtualMachineScaleSetNetworkConfiguration:
    allOf:
      - $ref: "#/definitions/SubResource"
    description: Describes a virtual machine scale set network profile's network configurations.
    properties:
      name:
        description: The network configuration name.
        type: string
      properties:
        $ref: "#/definitions/VirtualMachineScaleSetNetworkConfigurationProperties"
        x-ms-client-flatten: true
    required:
      - name
  VirtualMachineScaleSetNetworkConfigurationDnsSettings:
    description: Describes a virtual machines scale sets network configuration's DNS settings.
    properties:
      dnsServers:
        description: List of DNS servers IP addresses
        items:
          type: string
        type: array
  VirtualMachineScaleSetNetworkConfigurationProperties:
    description: Describes a virtual machine scale set network profile's IP configuration.
    properties:
      dnsSettings:
        $ref: "#/definitions/VirtualMachineScaleSetNetworkConfigurationDnsSettings"
        description: The dns settings to be applied on the network interfaces.
      enableAcceleratedNetworking:
        description: Specifies whether the network interface is accelerated networking-enabled.
        type: boolean
      enableIPForwarding:
        description: Whether IP forwarding enabled on this NIC.
        type: boolean
      ipConfigurations:
        description: Specifies the IP configurations of the network interface.
        items:
          $ref: "#/definitions/VirtualMachineScaleSetIPConfiguration"
        type: array
      networkSecurityGroup:
        $ref: "#/definitions/SubResource"
        description: The network security group.
      primary:
        description: Specifies the primary network interface in case the virtual machine has more than 1 network interface.
        type: boolean
    required:
      - ipConfigurations
  VirtualMachineScaleSetNetworkProfile:
    description: Describes a virtual machine scale set network profile.
    properties:
      healthProbe:
        $ref: "#/definitions/ApiEntityReference"
        description: "A reference to a load balancer probe used to determine the health of an instance in the virtual machine scale set. The reference will be in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}'."
      networkInterfaceConfigurations:
        description: The list of network configurations.
        items:
          $ref: "#/definitions/VirtualMachineScaleSetNetworkConfiguration"
        type: array
  VirtualMachineScaleSetOSDisk:
    description: Describes a virtual machine scale set operating system disk.
    properties:
      caching:
        $ref: "#/definitions/Caching"
        description: "Specifies the caching requirements. <br><br> Possible values are: <br><br> **None** <br><br> **ReadOnly** <br><br> **ReadWrite** <br><br> Default: **None for Standard storage. ReadOnly for Premium storage**"
      createOption:
        $ref: "#/definitions/CreateOption"
        description: "Specifies how the virtual machines in the scale set should be created.<br><br> The only allowed value is: **FromImage** \\u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you  also use the plan element previously described."
      diffDiskSettings:
        $ref: "#/definitions/DiffDiskSettings"
        description: Specifies the ephemeral disk Settings for the operating system disk used by the virtual machine scale set.
      diskSizeGB:
        description: Specifies the size of the operating system disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. <br><br> This value cannot be larger than 1023 GB
        format: int32
        type: integer
      image:
        $ref: "#/definitions/VirtualHardDisk"
        description: Specifies information about the unmanaged user image to base the scale set on.
      managedDisk:
        $ref: "#/definitions/VirtualMachineScaleSetManagedDiskParameters"
        description: The managed disk parameters.
      name:
        description: The disk name.
        type: string
      osType:
        description: "This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. <br><br> Possible values are: <br><br> **Windows** <br><br> **Linux**"
        enum:
          - Windows
          - Linux
        type: string
        x-ms-enum:
          modelAsString: false
          name: OperatingSystemTypes
      vhdContainers:
        description: Specifies the container urls that are used to store operating system disks for the scale set.
        items:
          type: string
        type: array
      writeAcceleratorEnabled:
        description: Specifies whether writeAccelerator should be enabled or disabled on the disk.
        type: boolean
    required:
      - createOption
  VirtualMachineScaleSetOSProfile:
    description: Describes a virtual machine scale set OS profile.
    properties:
      adminPassword:
        description: Specifies the password of the administrator account. <br><br> **Minimum-length (Windows):** 8 characters <br><br> **Minimum-length (Linux):** 6 characters <br><br> **Max-length (Windows):** 123 characters <br><br> **Max-length (Linux):** 72 characters <br><br> **Complexity requirements:** 3 out of 4 conditions below need to be fulfilled <br> Has lower characters <br>Has upper characters <br> Has a digit <br> Has a special character (Regex match [\W_]) <br><br> **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" <br><br> For resetting the password, see [How to reset the Remote Desktop service or its login password in a Windows VM](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-reset-rdp?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) <br><br> For resetting root password, see [Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-vmaccess-extension?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#reset-root-password)
        type: string
      adminUsername:
        description: Specifies the name of the administrator account. <br><br> **Windows-only restriction:** Cannot end in "." <br><br> **Disallowed values:** "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". <br><br> **Minimum-length (Linux):** 1  character <br><br> **Max-length (Linux):** 64 characters <br><br> **Max-length (Windows):** 20 characters  <br><br><li> For root access to the Linux VM, see [Using root privileges on Linux virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-use-root-privileges?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)<br><li> For a list of built-in system users on Linux that should not be used in this field, see [Selecting User Names for Linux on Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-usernames?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)
        type: string
      computerNamePrefix:
        description: Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 15 characters long.
        type: string
      customData:
        description: Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. <br><br> For using cloud-init for your VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-cloud-init?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json)
        type: string
      linuxConfiguration:
        $ref: "#/definitions/LinuxConfiguration"
        description: Specifies the Linux operating system settings on the virtual machine. <br><br>For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-endorsed-distros?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json) <br><br> For running non-endorsed distributions, see [Information for Non-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-create-upload-generic?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json).
      secrets:
        description: Specifies set of certificates that should be installed onto the virtual machines in the scale set.
        items:
          $ref: "#/definitions/VaultSecretGroup"
        type: array
      windowsConfiguration:
        $ref: "#/definitions/WindowsConfiguration"
        description: Specifies Windows operating system settings on the virtual machine.
  VirtualMachineScaleSetProperties:
    description: Describes the properties of a Virtual Machine Scale Set.
    properties:
      additionalCapabilities:
        $ref: "#/definitions/AdditionalCapabilities"
        description: "Specifies additional capabilities enabled or disabled on the Virtual Machines in the Virtual Machine Scale Set. For instance: whether the Virtual Machines have the capability to support attaching managed data disks with UltraSSD_LRS storage account type."
      doNotRunExtensionsOnOverprovisionedVMs:
        description: When Overprovision is enabled, extensions are launched only on the requested number of VMs which are finally kept. This property will hence ensure that the extensions do not run on the extra overprovisioned VMs.
        type: boolean
      overprovision:
        description: Specifies whether the Virtual Machine Scale Set should be overprovisioned.
        type: boolean
      platformFaultDomainCount:
        description: Fault Domain count for each placement group.
        format: int32
        type: integer
      provisioningState:
        description: The provisioning state, which only appears in the response.
        readOnly: true
        type: string
      proximityPlacementGroup:
        $ref: "#/definitions/SubResource"
        description: "Specifies information about the proximity placement group that the virtual machine scale set should be assigned to. <br><br>Minimum api-version: 2018-04-01."
      scaleInPolicy:
        $ref: "#/definitions/ScaleInPolicy"
        description: Specifies the scale-in policy that decides which virtual machines are chosen for removal when a Virtual Machine Scale Set is scaled-in.
      singlePlacementGroup:
        description: When true this limits the scale set to a single placement group, of max size 100 virtual machines.
        type: boolean
      uniqueId:
        description: Specifies the ID which uniquely identifies a Virtual Machine Scale Set.
        readOnly: true
        type: string
      upgradePolicy:
        $ref: "#/definitions/UpgradePolicy"
        description: The upgrade policy.
      virtualMachineProfile:
        $ref: "#/definitions/VirtualMachineScaleSetVMProfile"
        description: The virtual machine profile.
      zoneBalance:
        description: Whether to force strictly even Virtual Machine distribution cross x-zones in case there is zone outage.
        type: boolean
  VirtualMachineScaleSetPublicIPAddressConfiguration:
    description: Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration
    properties:
      name:
        description: The publicIP address configuration name.
        type: string
      properties:
        $ref: "#/definitions/VirtualMachineScaleSetPublicIPAddressConfigurationProperties"
        x-ms-client-flatten: true
    required:
      - name
  VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings:
    description: Describes a virtual machines scale sets network configuration's DNS settings.
    properties:
      domainNameLabel:
        description: The Domain name label.The concatenation of the domain name label and vm index will be the domain name labels of the PublicIPAddress resources that will be created
        type: string
    required:
      - domainNameLabel
  VirtualMachineScaleSetPublicIPAddressConfigurationProperties:
    description: Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration
    properties:
      dnsSettings:
        $ref: "#/definitions/VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings"
        description: The dns settings to be applied on the publicIP addresses .
      idleTimeoutInMinutes:
        description: The idle timeout of the public IP address.
        format: int32
        type: integer
      ipTags:
        description: The list of IP tags associated with the public IP address.
        items:
          $ref: "#/definitions/VirtualMachineScaleSetIpTag"
        type: array
      publicIPPrefix:
        $ref: "#/definitions/SubResource"
        description: The PublicIPPrefix from which to allocate publicIP addresses.
  VirtualMachineScaleSetReimageParameters:
    allOf:
      - $ref: "#/definitions/VirtualMachineScaleSetVMReimageParameters"
    description: Describes a Virtual Machine Scale Set VM Reimage Parameters.
    properties:
      instanceIds:
        description: The virtual machine scale set instance ids. Omitting the virtual machine scale set instance ids will result in the operation being performed on all virtual machines in the virtual machine scale set.
        items:
          type: string
        type: array
  VirtualMachineScaleSetSku:
    description: Describes an available virtual machine scale set sku.
    properties:
      capacity:
        $ref: "#/definitions/VirtualMachineScaleSetSkuCapacity"
        description: Specifies the number of virtual machines in the scale set.
        readOnly: true
      resourceType:
        description: The type of resource the sku applies to.
        readOnly: true
        type: string
      sku:
        $ref: "#/definitions/Sku"
        description: The Sku.
        readOnly: true
  VirtualMachineScaleSetSkuCapacity:
    description: Describes scaling information of a sku.
    properties:
      defaultCapacity:
        description: The default capacity.
        format: int64
        readOnly: true
        type: integer
      maximum:
        description: The maximum capacity that can be set.
        format: int64
        readOnly: true
        type: integer
      minimum:
        description: The minimum capacity.
        format: int64
        readOnly: true
        type: integer
      scaleType:
        description: The scale type applicable to the sku.
        enum:
          - Automatic
          - None
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: false
          name: VirtualMachineScaleSetSkuScaleType
  VirtualMachineScaleSetStorageProfile:
    description: Describes a virtual machine scale set storage profile.
    properties:
      dataDisks:
        description: Specifies the parameters that are used to add data disks to the virtual machines in the scale set. <br><br> For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).
        items:
          $ref: "#/definitions/VirtualMachineScaleSetDataDisk"
        type: array
      imageReference:
        $ref: "#/definitions/ImageReference"
        description: Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations.
      osDisk:
        $ref: "#/definitions/VirtualMachineScaleSetOSDisk"
        description: Specifies information about the operating system disk used by the virtual machines in the scale set. <br><br> For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).
  VirtualMachineScaleSetUpdate:
    allOf:
      - $ref: "#/definitions/UpdateResource"
    description: Describes a Virtual Machine Scale Set.
    properties:
      identity:
        $ref: "#/definitions/VirtualMachineScaleSetIdentity"
        description: The identity of the virtual machine scale set, if configured.
      plan:
        $ref: "#/definitions/Plan"
        description: The purchase plan when deploying a virtual machine scale set from VM Marketplace images.
      properties:
        $ref: "#/definitions/VirtualMachineScaleSetUpdateProperties"
        x-ms-client-flatten: true
      sku:
        $ref: "#/definitions/Sku"
        description: The virtual machine scale set sku.
  VirtualMachineScaleSetUpdateIPConfiguration:
    allOf:
      - $ref: "#/definitions/SubResource"
    description: Describes a virtual machine scale set network profile's IP configuration.
    properties:
      name:
        description: The IP configuration name.
        type: string
      properties:
        $ref: "#/definitions/VirtualMachineScaleSetUpdateIPConfigurationProperties"
        x-ms-client-flatten: true
  VirtualMachineScaleSetUpdateIPConfigurationProperties:
    description: Describes a virtual machine scale set network profile's IP configuration properties.
    properties:
      applicationGatewayBackendAddressPools:
        description: The application gateway backend address pools.
        items:
          $ref: "#/definitions/SubResource"
        type: array
      applicationSecurityGroups:
        description: Specifies an array of references to application security group.
        items:
          $ref: "#/definitions/SubResource"
        type: array
      loadBalancerBackendAddressPools:
        description: The load balancer backend address pools.
        items:
          $ref: "#/definitions/SubResource"
        type: array
      loadBalancerInboundNatPools:
        description: The load balancer inbound nat pools.
        items:
          $ref: "#/definitions/SubResource"
        type: array
      primary:
        description: Specifies the primary IP Configuration in case the network interface has more than one IP Configuration.
        type: boolean
      privateIPAddressVersion:
        description: "Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4.  Possible values are: 'IPv4' and 'IPv6'."
        enum:
          - IPv4
          - IPv6
        type: string
        x-ms-enum:
          modelAsString: true
          name: IPVersion
      publicIPAddressConfiguration:
        $ref: "#/definitions/VirtualMachineScaleSetUpdatePublicIPAddressConfiguration"
        description: The publicIPAddressConfiguration.
      subnet:
        $ref: "#/definitions/ApiEntityReference"
        description: The subnet.
  VirtualMachineScaleSetUpdateNetworkConfiguration:
    allOf:
      - $ref: "#/definitions/SubResource"
    description: Describes a virtual machine scale set network profile's network configurations.
    properties:
      name:
        description: The network configuration name.
        type: string
      properties:
        $ref: "#/definitions/VirtualMachineScaleSetUpdateNetworkConfigurationProperties"
        x-ms-client-flatten: true
  VirtualMachineScaleSetUpdateNetworkConfigurationProperties:
    description: Describes a virtual machine scale set updatable network profile's IP configuration.Use this object for updating network profile's IP Configuration.
    properties:
      dnsSettings:
        $ref: "#/definitions/VirtualMachineScaleSetNetworkConfigurationDnsSettings"
        description: The dns settings to be applied on the network interfaces.
      enableAcceleratedNetworking:
        description: Specifies whether the network interface is accelerated networking-enabled.
        type: boolean
      enableIPForwarding:
        description: Whether IP forwarding enabled on this NIC.
        type: boolean
      ipConfigurations:
        description: The virtual machine scale set IP Configuration.
        items:
          $ref: "#/definitions/VirtualMachineScaleSetUpdateIPConfiguration"
        type: array
      networkSecurityGroup:
        $ref: "#/definitions/SubResource"
        description: The network security group.
      primary:
        description: Whether this is a primary NIC on a virtual machine.
        type: boolean
  VirtualMachineScaleSetUpdateNetworkProfile:
    description: Describes a virtual machine scale set network profile.
    properties:
      networkInterfaceConfigurations:
        description: The list of network configurations.
        items:
          $ref: "#/definitions/VirtualMachineScaleSetUpdateNetworkConfiguration"
        type: array
  VirtualMachineScaleSetUpdateOSDisk:
    description: Describes virtual machine scale set operating system disk Update Object. This should be used for Updating VMSS OS Disk.
    properties:
      caching:
        $ref: "#/definitions/Caching"
        description: The caching type.
      diskSizeGB:
        description: Specifies the size of the operating system disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. <br><br> This value cannot be larger than 1023 GB
        format: int32
        type: integer
      image:
        $ref: "#/definitions/VirtualHardDisk"
        description: The Source User Image VirtualHardDisk. This VirtualHardDisk will be copied before using it to attach to the Virtual Machine. If SourceImage is provided, the destination VirtualHardDisk should not exist.
      managedDisk:
        $ref: "#/definitions/VirtualMachineScaleSetManagedDiskParameters"
        description: The managed disk parameters.
      vhdContainers:
        description: The list of virtual hard disk container uris.
        items:
          type: string
        type: array
      writeAcceleratorEnabled:
        description: Specifies whether writeAccelerator should be enabled or disabled on the disk.
        type: boolean
  VirtualMachineScaleSetUpdateOSProfile:
    description: Describes a virtual machine scale set OS profile.
    properties:
      customData:
        description: A base-64 encoded string of custom data.
        type: string
      linuxConfiguration:
        $ref: "#/definitions/LinuxConfiguration"
        description: The Linux Configuration of the OS profile.
      secrets:
        description: The List of certificates for addition to the VM.
        items:
          $ref: "#/definitions/VaultSecretGroup"
        type: array
      windowsConfiguration:
        $ref: "#/definitions/WindowsConfiguration"
        description: The Windows Configuration of the OS profile.
  VirtualMachineScaleSetUpdateProperties:
    description: Describes the properties of a Virtual Machine Scale Set.
    properties:
      additionalCapabilities:
        $ref: "#/definitions/AdditionalCapabilities"
        description: "Specifies additional capabilities enabled or disabled on the Virtual Machines in the Virtual Machine Scale Set. For instance: whether the Virtual Machines have the capability to support attaching managed data disks with UltraSSD_LRS storage account type."
      overprovision:
        description: Specifies whether the Virtual Machine Scale Set should be overprovisioned.
        type: boolean
      scaleInPolicy:
        $ref: "#/definitions/ScaleInPolicy"
        description: Specifies the scale-in policy that decides which virtual machines are chosen for removal when a Virtual Machine Scale Set is scaled-in.
      singlePlacementGroup:
        description: When true this limits the scale set to a single placement group, of max size 100 virtual machines.
        type: boolean
      upgradePolicy:
        $ref: "#/definitions/UpgradePolicy"
        description: The upgrade policy.
      virtualMachineProfile:
        $ref: "#/definitions/VirtualMachineScaleSetUpdateVMProfile"
        description: The virtual machine profile.
  VirtualMachineScaleSetUpdatePublicIPAddressConfiguration:
    description: Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration
    properties:
      name:
        description: The publicIP address configuration name.
        type: string
      properties:
        $ref: "#/definitions/VirtualMachineScaleSetUpdatePublicIPAddressConfigurationProperties"
        x-ms-client-flatten: true
  VirtualMachineScaleSetUpdatePublicIPAddressConfigurationProperties:
    description: Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration
    properties:
      dnsSettings:
        $ref: "#/definitions/VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings"
        description: The dns settings to be applied on the publicIP addresses .
      idleTimeoutInMinutes:
        description: The idle timeout of the public IP address.
        format: int32
        type: integer
  VirtualMachineScaleSetUpdateStorageProfile:
    description: Describes a virtual machine scale set storage profile.
    properties:
      dataDisks:
        description: The data disks.
        items:
          $ref: "#/definitions/VirtualMachineScaleSetDataDisk"
        type: array
      imageReference:
        $ref: "#/definitions/ImageReference"
        description: The image reference.
      osDisk:
        $ref: "#/definitions/VirtualMachineScaleSetUpdateOSDisk"
        description: The OS disk.
  VirtualMachineScaleSetUpdateVMProfile:
    description: Describes a virtual machine scale set virtual machine profile.
    properties:
      billingProfile:
        $ref: "#/definitions/BillingProfile"
        description: "Specifies the billing related details of a low priority VMSS. <br><br>Minimum api-version: 2019-03-01."
      diagnosticsProfile:
        $ref: "#/definitions/DiagnosticsProfile"
        description: The virtual machine scale set diagnostics profile.
      extensionProfile:
        $ref: "#/definitions/VirtualMachineScaleSetExtensionProfile"
        description: The virtual machine scale set extension profile.
      licenseType:
        description: The license type, which is for bring your own license scenario.
        type: string
      networkProfile:
        $ref: "#/definitions/VirtualMachineScaleSetUpdateNetworkProfile"
        description: The virtual machine scale set network profile.
      osProfile:
        $ref: "#/definitions/VirtualMachineScaleSetUpdateOSProfile"
        description: The virtual machine scale set OS profile.
      scheduledEventsProfile:
        $ref: "#/definitions/ScheduledEventsProfile"
        description: Specifies Scheduled Event related configurations.
      storageProfile:
        $ref: "#/definitions/VirtualMachineScaleSetUpdateStorageProfile"
        description: The virtual machine scale set storage profile.
  VirtualMachineScaleSetVM:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Describes a virtual machine scale set virtual machine.
    properties:
      instanceId:
        description: The virtual machine instance ID.
        readOnly: true
        type: string
      plan:
        $ref: "#/definitions/Plan"
        description: Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use.  In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started ->**. Enter any required information and then click **Save**.
      properties:
        $ref: "#/definitions/VirtualMachineScaleSetVMProperties"
        x-ms-client-flatten: true
      resources:
        description: The virtual machine child extension resources.
        items:
          $ref: "#/definitions/VirtualMachineExtension"
        readOnly: true
        type: array
      sku:
        $ref: "#/definitions/Sku"
        description: The virtual machine SKU.
        readOnly: true
      zones:
        description: The virtual machine zones.
        items:
          type: string
        readOnly: true
        type: array
  VirtualMachineScaleSetVMExtensionsSummary:
    description: Extensions summary for virtual machines of a virtual machine scale set.
    properties:
      name:
        description: The extension name.
        readOnly: true
        type: string
      statusesSummary:
        description: The extensions information.
        items:
          $ref: "#/definitions/VirtualMachineStatusCodeCount"
        readOnly: true
        type: array
  VirtualMachineScaleSetVMInstanceIDs:
    description: Specifies a list of virtual machine instance IDs from the VM scale set.
    properties:
      instanceIds:
        description: The virtual machine scale set instance ids. Omitting the virtual machine scale set instance ids will result in the operation being performed on all virtual machines in the virtual machine scale set.
        items:
          type: string
        type: array
  VirtualMachineScaleSetVMInstanceRequiredIDs:
    description: Specifies a list of virtual machine instance IDs from the VM scale set.
    properties:
      instanceIds:
        description: The virtual machine scale set instance ids.
        items:
          type: string
        type: array
    required:
      - instanceIds
  VirtualMachineScaleSetVMInstanceView:
    description: The instance view of a virtual machine scale set VM.
    properties:
      bootDiagnostics:
        $ref: "#/definitions/BootDiagnosticsInstanceView"
        description: Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. <br><br> You can easily view the output of your console log. <br><br> Azure also enables you to see a screenshot of the VM from the hypervisor.
      disks:
        description: The disks information.
        items:
          $ref: "#/definitions/DiskInstanceView"
        type: array
      extensions:
        description: The extensions information.
        items:
          $ref: "#/definitions/VirtualMachineExtensionInstanceView"
        type: array
      maintenanceRedeployStatus:
        $ref: "#/definitions/MaintenanceRedeployStatus"
        description: The Maintenance Operation status on the virtual machine.
      placementGroupId:
        description: The placement group in which the VM is running. If the VM is deallocated it will not have a placementGroupId.
        type: string
      platformFaultDomain:
        description: The Fault Domain count.
        format: int32
        type: integer
      platformUpdateDomain:
        description: The Update Domain count.
        format: int32
        type: integer
      rdpThumbPrint:
        description: The Remote desktop certificate thumbprint.
        type: string
      statuses:
        description: The resource status information.
        items:
          $ref: "#/definitions/InstanceViewStatus"
        type: array
      vmAgent:
        $ref: "#/definitions/VirtualMachineAgentInstanceView"
        description: The VM Agent running on the virtual machine.
      vmHealth:
        $ref: "#/definitions/VirtualMachineHealthStatus"
        description: The health status for the VM.
        readOnly: true
  VirtualMachineScaleSetVMListResult:
    description: The List Virtual Machine Scale Set VMs operation response.
    properties:
      nextLink:
        description: The uri to fetch the next page of Virtual Machine Scale Set VMs. Call ListNext() with this to fetch the next page of VMSS VMs
        type: string
      value:
        description: The list of virtual machine scale sets VMs.
        items:
          $ref: "#/definitions/VirtualMachineScaleSetVM"
        type: array
    required:
      - value
  VirtualMachineScaleSetVMNetworkProfileConfiguration:
    description: Describes a virtual machine scale set VM network profile.
    properties:
      networkInterfaceConfigurations:
        description: The list of network configurations.
        items:
          $ref: "#/definitions/VirtualMachineScaleSetNetworkConfiguration"
        type: array
  VirtualMachineScaleSetVMProfile:
    description: Describes a virtual machine scale set virtual machine profile.
    properties:
      billingProfile:
        $ref: "#/definitions/BillingProfile"
        description: "Specifies the billing related details of a low priority VMSS. <br><br>Minimum api-version: 2019-03-01."
      diagnosticsProfile:
        $ref: "#/definitions/DiagnosticsProfile"
        description: "Specifies the boot diagnostic settings state. <br><br>Minimum api-version: 2015-06-15."
      evictionPolicy:
        description: "Specifies the eviction policy for virtual machines in a low priority scale set. <br><br>Minimum api-version: 2017-10-30-preview"
        enum:
          - Deallocate
          - Delete
        type: string
        x-ms-enum:
          modelAsString: true
          name: VirtualMachineEvictionPolicyTypes
      extensionProfile:
        $ref: "#/definitions/VirtualMachineScaleSetExtensionProfile"
        description: Specifies a collection of settings for extensions installed on virtual machines in the scale set.
      licenseType:
        description: "Specifies that the image or disk that is being used was licensed on-premises. This element is only used for images that contain the Windows Server operating system. <br><br> Possible values are: <br><br> Windows_Client <br><br> Windows_Server <br><br> If this element is included in a request for an update, the value must match the initial value. This value cannot be updated. <br><br> For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-hybrid-use-benefit-licensing?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) <br><br> Minimum api-version: 2015-06-15"
        type: string
      networkProfile:
        $ref: "#/definitions/VirtualMachineScaleSetNetworkProfile"
        description: Specifies properties of the network interfaces of the virtual machines in the scale set.
      osProfile:
        $ref: "#/definitions/VirtualMachineScaleSetOSProfile"
        description: Specifies the operating system settings for the virtual machines in the scale set.
      priority:
        description: "Specifies the priority for the virtual machines in the scale set. <br><br>Minimum api-version: 2017-10-30-preview"
        enum:
          - Regular
          - Low
        type: string
        x-ms-enum:
          modelAsString: true
          name: VirtualMachinePriorityTypes
      scheduledEventsProfile:
        $ref: "#/definitions/ScheduledEventsProfile"
        description: Specifies Scheduled Event related configurations.
      storageProfile:
        $ref: "#/definitions/VirtualMachineScaleSetStorageProfile"
        description: Specifies the storage settings for the virtual machine disks.
  VirtualMachineScaleSetVMProperties:
    description: Describes the properties of a virtual machine scale set virtual machine.
    properties:
      additionalCapabilities:
        $ref: "#/definitions/AdditionalCapabilities"
        description: "Specifies additional capabilities enabled or disabled on the virtual machine in the scale set. For instance: whether the virtual machine has the capability to support attaching managed data disks with UltraSSD_LRS storage account type."
      availabilitySet:
        $ref: "#/definitions/SubResource"
        description: Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Manage the availability of virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). <br><br> For more information on Azure planned maintenance, see [Planned maintenance for virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) <br><br> Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set.
      diagnosticsProfile:
        $ref: "#/definitions/DiagnosticsProfile"
        description: "Specifies the boot diagnostic settings state. <br><br>Minimum api-version: 2015-06-15."
      hardwareProfile:
        $ref: "#/definitions/HardwareProfile"
        description: Specifies the hardware settings for the virtual machine.
      instanceView:
        $ref: "#/definitions/VirtualMachineScaleSetVMInstanceView"
        description: The virtual machine instance view.
        readOnly: true
      latestModelApplied:
        description: Specifies whether the latest model has been applied to the virtual machine.
        readOnly: true
        type: boolean
      licenseType:
        description: "Specifies that the image or disk that is being used was licensed on-premises. This element is only used for images that contain the Windows Server operating system. <br><br> Possible values are: <br><br> Windows_Client <br><br> Windows_Server <br><br> If this element is included in a request for an update, the value must match the initial value. This value cannot be updated. <br><br> For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-hybrid-use-benefit-licensing?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) <br><br> Minimum api-version: 2015-06-15"
        type: string
      modelDefinitionApplied:
        description: Specifies whether the model applied to the virtual machine is the model of the virtual machine scale set or the customized model for the virtual machine.
        readOnly: true
        type: string
      networkProfile:
        $ref: "#/definitions/NetworkProfile"
        description: Specifies the network interfaces of the virtual machine.
      networkProfileConfiguration:
        $ref: "#/definitions/VirtualMachineScaleSetVMNetworkProfileConfiguration"
        description: Specifies the network profile configuration of the virtual machine.
      osProfile:
        $ref: "#/definitions/OSProfile"
        description: Specifies the operating system settings for the virtual machine.
      protectionPolicy:
        $ref: "#/definitions/VirtualMachineScaleSetVMProtectionPolicy"
        description: Specifies the protection policy of the virtual machine.
      provisioningState:
        description: The provisioning state, which only appears in the response.
        readOnly: true
        type: string
      storageProfile:
        $ref: "#/definitions/StorageProfile"
        description: Specifies the storage settings for the virtual machine disks.
      vmId:
        description: Azure VM unique ID.
        readOnly: true
        type: string
  VirtualMachineScaleSetVMProtectionPolicy:
    description: The protection policy of a virtual machine scale set VM.
    properties:
      protectFromScaleIn:
        description: Indicates that the virtual machine scale set VM shouldn't be considered for deletion during a scale-in operation.
        type: boolean
      protectFromScaleSetActions:
        description: Indicates that model updates or actions (including scale-in) initiated on the virtual machine scale set should not be applied to the virtual machine scale set VM.
        type: boolean
  VirtualMachineScaleSetVMReimageParameters:
    allOf:
      - $ref: "#/definitions/VirtualMachineReimageParameters"
    description: Describes a Virtual Machine Scale Set VM Reimage Parameters.
  VirtualMachineSize:
    description: Describes the properties of a VM size.
    properties:
      maxDataDiskCount:
        description: The maximum number of data disks that can be attached to the virtual machine size.
        format: int32
        type: integer
      memoryInMB:
        description: The amount of memory, in MB, supported by the virtual machine size.
        format: int32
        type: integer
      name:
        description: The name of the virtual machine size.
        type: string
      numberOfCores:
        description: The number of cores supported by the virtual machine size.
        format: int32
        type: integer
      osDiskSizeInMB:
        description: The OS disk size, in MB, allowed by the virtual machine size.
        format: int32
        type: integer
      resourceDiskSizeInMB:
        description: The resource disk size, in MB, allowed by the virtual machine size.
        format: int32
        type: integer
  VirtualMachineSizeListResult:
    description: The List Virtual Machine operation response.
    properties:
      value:
        description: The list of virtual machine sizes.
        items:
          $ref: "#/definitions/VirtualMachineSize"
        type: array
  VirtualMachineStatusCodeCount:
    description: The status code and count of the virtual machine scale set instance view status summary.
    properties:
      code:
        description: The instance view status code.
        readOnly: true
        type: string
      count:
        description: The number of instances having a particular status code.
        format: int32
        readOnly: true
        type: integer
  VirtualMachineUpdate:
    allOf:
      - $ref: "#/definitions/UpdateResource"
    description: Describes a Virtual Machine Update.
    properties:
      identity:
        $ref: "#/definitions/VirtualMachineIdentity"
        description: The identity of the virtual machine, if configured.
      plan:
        $ref: "#/definitions/Plan"
        description: Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use.  In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started ->**. Enter any required information and then click **Save**.
      properties:
        $ref: "#/definitions/VirtualMachineProperties"
        x-ms-client-flatten: true
      zones:
        description: The virtual machine zones.
        items:
          type: string
        type: array
  WinRMConfiguration:
    description: Describes Windows Remote Management configuration of the VM
    properties:
      listeners:
        description: The list of Windows Remote Management listeners
        items:
          $ref: "#/definitions/WinRMListener"
        type: array
  WinRMListener:
    description: Describes Protocol and thumbprint of Windows Remote Management listener
    properties:
      certificateUrl:
        description: 'This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8: <br><br> {<br>  "data":"<Base64-encoded-certificate>",<br>  "dataType":"pfx",<br>  "password":"<pfx-file-password>"<br>}'
        type: string
      protocol:
        description: "Specifies the protocol of listener. <br><br> Possible values are: <br>**http** <br><br> **https**"
        enum:
          - Http
          - Https
        type: string
        x-ms-enum:
          modelAsString: false
          name: ProtocolTypes
  WindowsConfiguration:
    description: Specifies Windows operating system settings on the virtual machine.
    properties:
      additionalUnattendContent:
        description: Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
        items:
          $ref: "#/definitions/AdditionalUnattendContent"
        type: array
      enableAutomaticUpdates:
        description: Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. <br><br> For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
        type: boolean
      provisionVMAgent:
        description: Indicates whether virtual machine agent should be provisioned on the virtual machine. <br><br> When this property is not specified in the request body, default behavior is to set it to true.  This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
        type: boolean
      timeZone:
        description: Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time"
        type: string
      winRM:
        $ref: "#/definitions/WinRMConfiguration"
        description: Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell.
