swagger: "2.0"
schemes:
  - https
host: management.azure.com
info:
  description: The DevTest Labs Client.
  title: DevTestLabsClient
  version: 2018-09-15
  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/devtestlabs/resource-manager/Microsoft.DevTestLab/stable/2018-09-15/DTL.json
      version: "2.0"
  x-preferred: true
  x-providerName: azure.com
  x-serviceName: devtestlabs-DTL
  x-tags:
    - Azure
    - Microsoft
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  azure_auth:
    authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize
    description: OAuth2 Implicit Grant
    flow: implicit
    scopes:
      user_impersonation: Access Microsoft Azure
    type: oauth2
security:
  - azure_auth:
      - user_impersonation
parameters:
  api-version:
    default: 2018-09-15
    description: Client API version.
    in: query
    name: api-version
    required: true
    type: string
  locationName:
    description: The name of the location.
    in: path
    name: locationName
    required: true
    type: string
    x-ms-parameter-location: method
  resourceGroupName:
    description: The name of the resource group.
    in: path
    name: resourceGroupName
    required: true
    type: string
    x-ms-parameter-location: method
  subscriptionId:
    description: The subscription ID.
    in: path
    name: subscriptionId
    required: true
    type: string
paths:
  /providers/Microsoft.DevTestLab/operations:
    get:
      description: Result of the request to list REST API operations
      operationId: ProviderOperations_List
      parameters:
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: Success
          schema:
            $ref: "#/definitions/ProviderOperationResult"
      tags:
        - ProviderOperations
      x-ms-examples:
        ProviderOperations_List:
          parameters:
            api-version: 2018-09-15
          responses:
            "200":
              body:
                value:
                  - display:
                      description: Registers the subscription
                      operation: Register Subscription
                      provider: Microsoft DevTest Labs
                      resource: register
                    name: Microsoft.DevTestLab/register/action
                  - display:
                      description: Evaluates lab policy.
                      operation: Evaluate policy
                      provider: Microsoft DevTest Labs
                      resource: policy sets
                    name: Microsoft.DevTestLab/labs/policySets/EvaluatePolicies/action
                  - display:
                      description: Delete labs.
                      operation: Delete labs.
                      provider: Microsoft DevTest Labs
                      resource: Labs
                    name: Microsoft.DevTestLab/labs/delete
                  - display:
                      description: Read labs.
                      operation: Read labs.
                      provider: Microsoft DevTest Labs
                      resource: Labs
                    name: Microsoft.DevTestLab/labs/read
                  - display:
                      description: Add or modify labs.
                      operation: Add or modify labs.
                      provider: Microsoft DevTest Labs
                      resource: Labs
                    name: Microsoft.DevTestLab/labs/write
                  - display:
                      description: List disk images available for custom image creation.
                      operation: List VHDs
                      provider: Microsoft DevTest Labs
                      resource: Labs
                    name: Microsoft.DevTestLab/labs/ListVhds/action
                  - display:
                      description: Generate a URI for uploading custom disk images to a Lab.
                      operation: Generate image upload URI
                      provider: Microsoft DevTest Labs
                      resource: Labs
                    name: Microsoft.DevTestLab/labs/GenerateUploadUri/action
                  - display:
                      description: Create virtual machines in a lab.
                      operation: Create a virtual machine
                      provider: Microsoft DevTest Labs
                      resource: Labs
                    name: Microsoft.DevTestLab/labs/CreateEnvironment/action
                  - display:
                      description: Claim a random claimable virtual machine in the lab.
                      operation: Claim Any Virtual Machine
                      provider: Microsoft DevTest Labs
                      resource: Labs
                    name: Microsoft.DevTestLab/labs/ClaimAnyVm/action
                  - display:
                      description: Exports the lab resource usage into a storage account
                      operation: Exports the lab resource usage into a storage account
                      provider: Microsoft DevTest Labs
                      resource: Labs
                    name: Microsoft.DevTestLab/labs/ExportResourceUsage/action
                  - display:
                      description: Import a virtual machine into a different lab.
                      operation: Import a virtual machine
                      provider: Microsoft DevTest Labs
                      resource: Labs
                    name: Microsoft.DevTestLab/labs/ImportVirtualMachine/action
                  - display:
                      description: Delete policies.
                      operation: Delete policies.
                      provider: Microsoft DevTest Labs
                      resource: policies
                    name: Microsoft.DevTestLab/labs/policySets/policies/delete
                  - display:
                      description: Read policies.
                      operation: Read policies.
                      provider: Microsoft DevTest Labs
                      resource: policies
                    name: Microsoft.DevTestLab/labs/policySets/policies/read
                  - display:
                      description: Add or modify policies.
                      operation: Add or modify policies.
                      provider: Microsoft DevTest Labs
                      resource: policies
                    name: Microsoft.DevTestLab/labs/policySets/policies/write
                  - display:
                      description: Delete schedules.
                      operation: Delete schedules.
                      provider: Microsoft DevTest Labs
                      resource: schedules
                    name: Microsoft.DevTestLab/labs/schedules/delete
                  - display:
                      description: Read schedules.
                      operation: Read schedules.
                      provider: Microsoft DevTest Labs
                      resource: schedules
                    name: Microsoft.DevTestLab/labs/schedules/read
                  - display:
                      description: Add or modify schedules.
                      operation: Add or modify schedules.
                      provider: Microsoft DevTest Labs
                      resource: schedules
                    name: Microsoft.DevTestLab/labs/schedules/write
                  - display:
                      description: Execute a schedule.
                      operation: Execute schedule
                      provider: Microsoft DevTest Labs
                      resource: schedules
                    name: Microsoft.DevTestLab/labs/schedules/Execute/action
                  - display:
                      description: Lists all applicable schedules
                      operation: List all applicable schedules
                      provider: Microsoft DevTest Labs
                      resource: schedules
                    name: Microsoft.DevTestLab/labs/schedules/ListApplicable/action
                  - display:
                      description: Delete schedules.
                      operation: Delete schedules.
                      provider: Microsoft DevTest Labs
                      resource: schedules
                    name: Microsoft.DevTestLab/schedules/delete
                  - display:
                      description: Read schedules.
                      operation: Read schedules.
                      provider: Microsoft DevTest Labs
                      resource: schedules
                    name: Microsoft.DevTestLab/schedules/read
                  - display:
                      description: Add or modify schedules.
                      operation: Add or modify schedules.
                      provider: Microsoft DevTest Labs
                      resource: schedules
                    name: Microsoft.DevTestLab/schedules/write
                  - display:
                      description: Execute a schedule.
                      operation: Execute schedule
                      provider: Microsoft DevTest Labs
                      resource: schedules
                    name: Microsoft.DevTestLab/schedules/Execute/action
                  - display:
                      description: Updates a schedule's target resource Id.
                      operation: Retarget schedule.
                      provider: Microsoft DevTest Labs
                      resource: schedules
                    name: Microsoft.DevTestLab/schedules/Retarget/action
                  - display:
                      description: Delete schedules.
                      operation: Delete schedules.
                      provider: Microsoft DevTest Labs
                      resource: schedules
                    name: Microsoft.DevTestLab/labs/virtualMachines/schedules/delete
                  - display:
                      description: Read schedules.
                      operation: Read schedules.
                      provider: Microsoft DevTest Labs
                      resource: schedules
                    name: Microsoft.DevTestLab/labs/virtualMachines/schedules/read
                  - display:
                      description: Add or modify schedules.
                      operation: Add or modify schedules.
                      provider: Microsoft DevTest Labs
                      resource: schedules
                    name: Microsoft.DevTestLab/labs/virtualMachines/schedules/write
                  - display:
                      description: Execute a schedule.
                      operation: Execute schedule
                      provider: Microsoft DevTest Labs
                      resource: schedules
                    name: Microsoft.DevTestLab/labs/virtualMachines/schedules/Execute/action
                  - display:
                      description: Delete schedules.
                      operation: Delete schedules.
                      provider: Microsoft DevTest Labs
                      resource: schedules
                    name: Microsoft.DevTestLab/labs/users/serviceFabrics/schedules/delete
                  - display:
                      description: Read schedules.
                      operation: Read schedules.
                      provider: Microsoft DevTest Labs
                      resource: schedules
                    name: Microsoft.DevTestLab/labs/users/serviceFabrics/schedules/read
                  - display:
                      description: Add or modify schedules.
                      operation: Add or modify schedules.
                      provider: Microsoft DevTest Labs
                      resource: schedules
                    name: Microsoft.DevTestLab/labs/users/serviceFabrics/schedules/write
                  - display:
                      description: Execute a schedule.
                      operation: Execute schedule
                      provider: Microsoft DevTest Labs
                      resource: schedules
                    name: Microsoft.DevTestLab/labs/users/serviceFabrics/schedules/Execute/action
                  - display:
                      description: Delete artifact sources.
                      operation: Delete artifact sources.
                      provider: Microsoft DevTest Labs
                      resource: Artifact sources
                    name: Microsoft.DevTestLab/labs/artifactSources/delete
                  - display:
                      description: Read artifact sources.
                      operation: Read artifact sources.
                      provider: Microsoft DevTest Labs
                      resource: Artifact sources
                    name: Microsoft.DevTestLab/labs/artifactSources/read
                  - display:
                      description: Add or modify artifact sources.
                      operation: Add or modify artifact sources.
                      provider: Microsoft DevTest Labs
                      resource: Artifact sources
                    name: Microsoft.DevTestLab/labs/artifactSources/write
                  - display:
                      description: Read artifacts.
                      operation: Read artifacts.
                      provider: Microsoft DevTest Labs
                      resource: Artifacts
                    name: Microsoft.DevTestLab/labs/artifactSources/artifacts/read
                  - display:
                      description: Generates an ARM template for the given artifact, uploads the required files to a storage account, and validates the generated artifact.
                      operation: Generates an ARM template for the given artifact
                      provider: Microsoft DevTest Labs
                      resource: Artifacts
                    name: Microsoft.DevTestLab/labs/artifactSources/artifacts/GenerateArmTemplate/action
                  - display:
                      description: Read gallery images.
                      operation: Read gallery images.
                      provider: Microsoft DevTest Labs
                      resource: gallery images
                    name: Microsoft.DevTestLab/labs/galleryImages/read
                  - display:
                      description: Delete custom images.
                      operation: Delete custom images.
                      provider: Microsoft DevTest Labs
                      resource: custom images
                    name: Microsoft.DevTestLab/labs/customImages/delete
                  - display:
                      description: Read custom images.
                      operation: Read custom images.
                      provider: Microsoft DevTest Labs
                      resource: custom images
                    name: Microsoft.DevTestLab/labs/customImages/read
                  - display:
                      description: Add or modify custom images.
                      operation: Add or modify custom images.
                      provider: Microsoft DevTest Labs
                      resource: custom images
                    name: Microsoft.DevTestLab/labs/customImages/write
                  - display:
                      description: Delete virtual networks.
                      operation: Delete virtual networks.
                      provider: Microsoft DevTest Labs
                      resource: virtual networks
                    name: Microsoft.DevTestLab/labs/virtualNetworks/delete
                  - display:
                      description: Read virtual networks.
                      operation: Read virtual networks.
                      provider: Microsoft DevTest Labs
                      resource: virtual networks
                    name: Microsoft.DevTestLab/labs/virtualNetworks/read
                  - display:
                      description: Add or modify virtual networks.
                      operation: Add or modify virtual networks.
                      provider: Microsoft DevTest Labs
                      resource: virtual networks
                    name: Microsoft.DevTestLab/labs/virtualNetworks/write
                  - display:
                      description: Delete virtual machines.
                      operation: Delete virtual machines.
                      provider: Microsoft DevTest Labs
                      resource: Virtual machines
                    name: Microsoft.DevTestLab/labs/virtualMachines/delete
                  - display:
                      description: Read virtual machines.
                      operation: Read virtual machines.
                      provider: Microsoft DevTest Labs
                      resource: Virtual machines
                    name: Microsoft.DevTestLab/labs/virtualMachines/read
                  - display:
                      description: Add or modify virtual machines.
                      operation: Add or modify virtual machines.
                      provider: Microsoft DevTest Labs
                      resource: Virtual machines
                    name: Microsoft.DevTestLab/labs/virtualMachines/write
                  - display:
                      description: Start a virtual machine.
                      operation: Start virtual machine
                      provider: Microsoft DevTest Labs
                      resource: Virtual machines
                    name: Microsoft.DevTestLab/labs/virtualMachines/Start/action
                  - display:
                      description: Stop a virtual machine
                      operation: Stop virtual machine
                      provider: Microsoft DevTest Labs
                      resource: Virtual machines
                    name: Microsoft.DevTestLab/labs/virtualMachines/Stop/action
                  - display:
                      description: Restart a virtual machine.
                      operation: Restart virtual machine
                      provider: Microsoft DevTest Labs
                      resource: Virtual machines
                    name: Microsoft.DevTestLab/labs/virtualMachines/Restart/action
                  - display:
                      description: Redeploy a virtual machine
                      operation: Redeploy a virtual machine
                      provider: Microsoft DevTest Labs
                      resource: Virtual machines
                    name: Microsoft.DevTestLab/labs/virtualMachines/Redeploy/action
                  - display:
                      description: Resize Virtual Machine.
                      operation: Resize Virtual Machine.
                      provider: Microsoft DevTest Labs
                      resource: Virtual machines
                    name: Microsoft.DevTestLab/labs/virtualMachines/Resize/action
                  - display:
                      description: Apply artifacts to virtual machine.
                      operation: Apply artifacts to virtual machine
                      provider: Microsoft DevTest Labs
                      resource: Virtual machines
                    name: Microsoft.DevTestLab/labs/virtualMachines/ApplyArtifacts/action
                  - display:
                      description: Attach a new or existing data disk to virtual machine.
                      operation: Add or attach a data disk
                      provider: Microsoft DevTest Labs
                      resource: Virtual machines
                    name: Microsoft.DevTestLab/labs/virtualMachines/AddDataDisk/action
                  - display:
                      description: Detach the specified disk from the virtual machine.
                      operation: Detach the specified disk from the virtual machine
                      provider: Microsoft DevTest Labs
                      resource: Virtual machines
                    name: Microsoft.DevTestLab/labs/virtualMachines/DetachDataDisk/action
                  - display:
                      description: Take ownership of an existing virtual machine
                      operation: Claim a virtual machine
                      provider: Microsoft DevTest Labs
                      resource: Virtual machines
                    name: Microsoft.DevTestLab/labs/virtualMachines/Claim/action
                  - display:
                      description: Release ownership of an existing virtual machine
                      operation: Unclaim a virtual machine
                      provider: Microsoft DevTest Labs
                      resource: Virtual machines
                    name: Microsoft.DevTestLab/labs/virtualMachines/UnClaim/action
                  - display:
                      description: Transfer ownership of virtual machine data disks to yourself
                      operation: Transfer data disks to yourself
                      provider: Microsoft DevTest Labs
                      resource: Virtual machines
                    name: Microsoft.DevTestLab/labs/virtualMachines/TransferDisks/action
                  - display:
                      description: Lists all applicable schedules
                      operation: List all applicable schedules
                      provider: Microsoft DevTest Labs
                      resource: Virtual machines
                    name: Microsoft.DevTestLab/labs/virtualMachines/ListApplicableSchedules/action
                  - display:
                      description: Gets a string that represents the contents of the RDP file for the virtual machine
                      operation: Get RDP file contents
                      provider: Microsoft DevTest Labs
                      resource: Virtual machines
                    name: Microsoft.DevTestLab/labs/virtualMachines/GetRdpFileContents/action
                  - display:
                      description: Delete formulas.
                      operation: Delete formulas.
                      provider: Microsoft DevTest Labs
                      resource: Formulas
                    name: Microsoft.DevTestLab/labs/formulas/delete
                  - display:
                      description: Read formulas.
                      operation: Read formulas.
                      provider: Microsoft DevTest Labs
                      resource: Formulas
                    name: Microsoft.DevTestLab/labs/formulas/read
                  - display:
                      description: Add or modify formulas.
                      operation: Add or modify formulas.
                      provider: Microsoft DevTest Labs
                      resource: Formulas
                    name: Microsoft.DevTestLab/labs/formulas/write
                  - display:
                      description: Read costs.
                      operation: Read costs.
                      provider: Microsoft DevTest Labs
                      resource: costs
                    name: Microsoft.DevTestLab/labs/costs/read
                  - display:
                      description: Add or modify costs.
                      operation: Add or modify costs.
                      provider: Microsoft DevTest Labs
                      resource: costs
                    name: Microsoft.DevTestLab/labs/costs/write
                  - display:
                      description: Delete disks.
                      operation: Delete disks.
                      provider: Microsoft DevTest Labs
                      resource: disks
                    name: Microsoft.DevTestLab/labs/users/disks/delete
                  - display:
                      description: Read disks.
                      operation: Read disks.
                      provider: Microsoft DevTest Labs
                      resource: disks
                    name: Microsoft.DevTestLab/labs/users/disks/read
                  - display:
                      description: Add or modify disks.
                      operation: Add or modify disks.
                      provider: Microsoft DevTest Labs
                      resource: disks
                    name: Microsoft.DevTestLab/labs/users/disks/write
                  - display:
                      description: Attach and create the lease of the disk to the virtual machine.
                      operation: Attach disk
                      provider: Microsoft DevTest Labs
                      resource: disks
                    name: Microsoft.DevTestLab/labs/users/disks/Attach/action
                  - display:
                      description: Detach and break the lease of the disk attached to the virtual machine.
                      operation: Detach and break the lease of the disk attached to the virtual machine
                      provider: Microsoft DevTest Labs
                      resource: disks
                    name: Microsoft.DevTestLab/labs/users/disks/Detach/action
                  - display:
                      description: Delete user profiles.
                      operation: Delete user profiles.
                      provider: Microsoft DevTest Labs
                      resource: user profiles
                    name: Microsoft.DevTestLab/labs/users/delete
                  - display:
                      description: Read user profiles.
                      operation: Read user profiles.
                      provider: Microsoft DevTest Labs
                      resource: user profiles
                    name: Microsoft.DevTestLab/labs/users/read
                  - display:
                      description: Add or modify user profiles.
                      operation: Add or modify user profiles.
                      provider: Microsoft DevTest Labs
                      resource: user profiles
                    name: Microsoft.DevTestLab/labs/users/write
                  - display:
                      description: Delete notification channels.
                      operation: Delete notification channels.
                      provider: Microsoft DevTest Labs
                      resource: notificationChannels
                    name: Microsoft.DevTestLab/labs/notificationChannels/delete
                  - display:
                      description: Read notification channels.
                      operation: Read notification channels.
                      provider: Microsoft DevTest Labs
                      resource: notificationChannels
                    name: Microsoft.DevTestLab/labs/notificationChannels/read
                  - display:
                      description: Add or modify notification channels.
                      operation: Add or modify notification channels.
                      provider: Microsoft DevTest Labs
                      resource: notificationChannels
                    name: Microsoft.DevTestLab/labs/notificationChannels/write
                  - display:
                      description: Send notification to provided channel.
                      operation: Notify
                      provider: Microsoft DevTest Labs
                      resource: notificationChannels
                    name: Microsoft.DevTestLab/labs/notificationChannels/Notify/action
                  - display:
                      description: Delete secrets.
                      operation: Delete secrets.
                      provider: Microsoft DevTest Labs
                      resource: secrets
                    name: Microsoft.DevTestLab/labs/users/secrets/delete
                  - display:
                      description: Read secrets.
                      operation: Read secrets.
                      provider: Microsoft DevTest Labs
                      resource: secrets
                    name: Microsoft.DevTestLab/labs/users/secrets/read
                  - display:
                      description: Add or modify secrets.
                      operation: Add or modify secrets.
                      provider: Microsoft DevTest Labs
                      resource: secrets
                    name: Microsoft.DevTestLab/labs/users/secrets/write
                  - display:
                      description: Read operations.
                      operation: Read operations.
                      provider: Microsoft DevTest Labs
                      resource: operations
                    name: Microsoft.DevTestLab/locations/operations/read
                  - display:
                      description: Read azure resource manager templates.
                      operation: Read azure resource manager templates.
                      provider: Microsoft DevTest Labs
                      resource: Azure Resource Manager templates
                    name: Microsoft.DevTestLab/labs/artifactSources/armTemplates/read
                  - display:
                      description: Delete environments.
                      operation: Delete environments.
                      provider: Microsoft DevTest Labs
                      resource: environments
                    name: Microsoft.DevTestLab/labs/users/environments/delete
                  - display:
                      description: Read environments.
                      operation: Read environments.
                      provider: Microsoft DevTest Labs
                      resource: environments
                    name: Microsoft.DevTestLab/labs/users/environments/read
                  - display:
                      description: Add or modify environments.
                      operation: Add or modify environments.
                      provider: Microsoft DevTest Labs
                      resource: environments
                    name: Microsoft.DevTestLab/labs/users/environments/write
                  - display:
                      description: Delete service runners.
                      operation: Delete service runners.
                      provider: Microsoft DevTest Labs
                      resource: Service runners
                    name: Microsoft.DevTestLab/labs/serviceRunners/delete
                  - display:
                      description: Read service runners.
                      operation: Read service runners.
                      provider: Microsoft DevTest Labs
                      resource: Service runners
                    name: Microsoft.DevTestLab/labs/serviceRunners/read
                  - display:
                      description: Add or modify service runners.
                      operation: Add or modify service runners.
                      provider: Microsoft DevTest Labs
                      resource: Service runners
                    name: Microsoft.DevTestLab/labs/serviceRunners/write
                  - display:
                      description: Delete service fabrics.
                      operation: Delete service fabrics.
                      provider: Microsoft DevTest Labs
                      resource: Service Fabrics
                    name: Microsoft.DevTestLab/labs/users/serviceFabrics/delete
                  - display:
                      description: Read service fabrics.
                      operation: Read service fabrics.
                      provider: Microsoft DevTest Labs
                      resource: Service Fabrics
                    name: Microsoft.DevTestLab/labs/users/serviceFabrics/read
                  - display:
                      description: Add or modify service fabrics.
                      operation: Add or modify service fabrics.
                      provider: Microsoft DevTest Labs
                      resource: Service Fabrics
                    name: Microsoft.DevTestLab/labs/users/serviceFabrics/write
                  - display:
                      description: Start a service fabric.
                      operation: Start service fabric
                      provider: Microsoft DevTest Labs
                      resource: Service Fabrics
                    name: Microsoft.DevTestLab/labs/users/serviceFabrics/Start/action
                  - display:
                      description: Stop a service fabric
                      operation: Stop service fabric
                      provider: Microsoft DevTest Labs
                      resource: Service Fabrics
                    name: Microsoft.DevTestLab/labs/users/serviceFabrics/Stop/action
                  - display:
                      description: Lists all applicable schedules
                      operation: List all applicable schedules
                      provider: Microsoft DevTest Labs
                      resource: Service Fabrics
                    name: Microsoft.DevTestLab/labs/users/serviceFabrics/ListApplicableSchedules/action
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/providers/Microsoft.DevTestLab/labs":
    get:
      description: List labs in a subscription.
      operationId: Labs_ListBySubscription
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: "Specify the $expand query. Example: 'properties($select=defaultStorageAccount)'"
          in: query
          name: $expand
          type: string
        - description: "The filter to apply to the operation. Example: '$filter=contains(name,'myName')"
          in: query
          name: $filter
          type: string
        - description: "The maximum number of resources to return from the operation. Example: '$top=10'"
          format: int32
          in: query
          name: $top
          type: integer
        - description: "The ordering expression for the results, using OData notation. Example: '$orderby=name desc'"
          in: query
          name: $orderby
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/LabList"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Labs
      x-ms-examples:
        Labs_ListBySubscription:
          parameters:
            api-version: 2018-09-15
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/{subscription-id}/resourcegroups/{resourcegroup-name-1}/providers/microsoft.devtestlab/labs/{lab-name-1}
                    location: westcentralus
                    name: "{lab-name-1}"
                    properties:
                      announcement:
                        enabled: Disabled
                        expired: false
                        markdown: ""
                        title: ""
                      artifactsStorageAccount: /subscriptions/{subscription-id}/resourceGroups/{resourcegroup-name-1}/providers/Microsoft.Storage/storageAccounts/{storageaccount-name-1}
                      createdDate: 2018-09-30T08:38:13.1973609-07:00
                      defaultPremiumStorageAccount: /subscriptions/{subscription-id}/resourceGroups/{resourcegroup-name-1}/providers/Microsoft.Storage/storageAccounts/{storageaccount-name-1}
                      defaultStorageAccount: /subscriptions/{subscription-id}/resourceGroups/{resourcegroup-name-1}/providers/Microsoft.Storage/storageAccounts/{storageaccount-name-1}
                      environmentPermission: Reader
                      labStorageType: Premium
                      mandatoryArtifactsResourceIdsLinux: []
                      mandatoryArtifactsResourceIdsWindows: []
                      premiumDataDiskStorageAccount: /subscriptions/{subscription-id}/resourceGroups/{resourcegroup-name-1}/providers/Microsoft.Storage/storageAccounts/{storageaccount-name-1}
                      premiumDataDisks: Disabled
                      provisioningState: Succeeded
                      support:
                        enabled: Disabled
                        markdown: ""
                      uniqueIdentifier: "{unique-identifier}"
                      vaultName: /subscriptions/{subscription-id}/resourceGroups/{resourcegroup-name-1}/providers/Microsoft.KeyVault/vaults/{keyvault-name-1}
                    tags: {}
                    type: Microsoft.DevTestLab/labs
                  - id: /subscriptions/{subscription-id}/resourcegroups/{resourcegroup-name-2}/providers/microsoft.devtestlab/labs/{lab-name-2}
                    location: japaneast
                    name: "{lab-name-2}"
                    properties:
                      announcement:
                        enabled: Disabled
                        expired: false
                        markdown: ""
                        title: ""
                      artifactsStorageAccount: /subscriptions/{subscription-id}/resourceGroups/{resourcegroup-name-2}/providers/Microsoft.Storage/storageAccounts/{storageaccount-name-2}
                      createdDate: 2018-09-30T09:37:52.9675083-07:00
                      defaultPremiumStorageAccount: /subscriptions/{subscription-id}/resourceGroups/{resourcegroup-name-2}/providers/Microsoft.Storage/storageAccounts/{storageaccount-name-2}
                      defaultStorageAccount: /subscriptions/{subscription-id}/resourceGroups/{resourcegroup-name-2}/providers/Microsoft.Storage/storageAccounts/{storageaccount-name-2}
                      environmentPermission: Reader
                      labStorageType: Premium
                      mandatoryArtifactsResourceIdsLinux: []
                      mandatoryArtifactsResourceIdsWindows: []
                      premiumDataDiskStorageAccount: /subscriptions/{subscription-id}/resourceGroups/{resourcegroup-name-2}/providers/Microsoft.Storage/storageAccounts/{storageaccount-name-2}
                      premiumDataDisks: Disabled
                      provisioningState: Succeeded
                      support:
                        enabled: Disabled
                        markdown: ""
                      uniqueIdentifier: "{unique-identifier}"
                      vaultName: /subscriptions/{subscription-id}/resourceGroups/{resourcegroup-name-2}/providers/Microsoft.KeyVault/vaults/{keyvault-name-2}
                    tags: {}
                    type: Microsoft.DevTestLab/labs
      x-ms-odata: "#/definitions/Lab"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/providers/Microsoft.DevTestLab/locations/{locationName}/operations/{name}":
    get:
      description: Get operation.
      operationId: Operations_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/locationName"
        - description: The name of the operation.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/OperationResult"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Operations
  "/subscriptions/{subscriptionId}/providers/Microsoft.DevTestLab/schedules":
    get:
      description: List schedules in a subscription.
      operationId: GlobalSchedules_ListBySubscription
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: "Specify the $expand query. Example: 'properties($select=status)'"
          in: query
          name: $expand
          type: string
        - description: "The filter to apply to the operation. Example: '$filter=contains(name,'myName')"
          in: query
          name: $filter
          type: string
        - description: "The maximum number of resources to return from the operation. Example: '$top=10'"
          format: int32
          in: query
          name: $top
          type: integer
        - description: "The ordering expression for the results, using OData notation. Example: '$orderby=name desc'"
          in: query
          name: $orderby
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ScheduleList"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - GlobalSchedules
      x-ms-odata: "#/definitions/Schedule"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs":
    get:
      description: List labs in a resource group.
      operationId: Labs_ListByResourceGroup
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: "Specify the $expand query. Example: 'properties($select=defaultStorageAccount)'"
          in: query
          name: $expand
          type: string
        - description: "The filter to apply to the operation. Example: '$filter=contains(name,'myName')"
          in: query
          name: $filter
          type: string
        - description: "The maximum number of resources to return from the operation. Example: '$top=10'"
          format: int32
          in: query
          name: $top
          type: integer
        - description: "The ordering expression for the results, using OData notation. Example: '$orderby=name desc'"
          in: query
          name: $orderby
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/LabList"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Labs
      x-ms-examples:
        Labs_ListByResourceGroup:
          parameters:
            api-version: 2018-09-15
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/{subscription-id}/resourcegroups/myResourceGroup/providers/microsoft.devtestlab/labs/{devtestlab-name}
                    location: "{azure-location}"
                    name: "{devtestlab-name}"
                    properties:
                      announcement:
                        enabled: Disabled
                        expired: false
                        markdown: ""
                        title: ""
                      createdDate: 2018-10-02T10:23:20.9573599-07:00
                      environmentPermission: Reader
                      labStorageType: Standard
                      mandatoryArtifactsResourceIdsLinux: []
                      mandatoryArtifactsResourceIdsWindows: []
                      premiumDataDisks: Disabled
                      provisioningState: Succeeded
                      support:
                        enabled: Disabled
                        markdown: ""
                      uniqueIdentifier: "{unique-identifier}"
                      vaultName: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/{keyvault-name}
                    tags:
                      MyTag: MyValue
                    type: Microsoft.DevTestLab/labs
      x-ms-odata: "#/definitions/Lab"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources":
    get:
      description: List artifact sources in a given lab.
      operationId: ArtifactSources_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=displayName)'"
          in: query
          name: $expand
          type: string
        - description: "The filter to apply to the operation. Example: '$filter=contains(name,'myName')"
          in: query
          name: $filter
          type: string
        - description: "The maximum number of resources to return from the operation. Example: '$top=10'"
          format: int32
          in: query
          name: $top
          type: integer
        - description: "The ordering expression for the results, using OData notation. Example: '$orderby=name desc'"
          in: query
          name: $orderby
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ArtifactSourceList"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - ArtifactSources
      x-ms-odata: "#/definitions/ArtifactSource"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources/{artifactSourceName}/armtemplates":
    get:
      description: List azure resource manager templates in a given artifact source.
      operationId: ArmTemplates_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the artifact source.
          in: path
          name: artifactSourceName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=displayName)'"
          in: query
          name: $expand
          type: string
        - description: "The filter to apply to the operation. Example: '$filter=contains(name,'myName')"
          in: query
          name: $filter
          type: string
        - description: "The maximum number of resources to return from the operation. Example: '$top=10'"
          format: int32
          in: query
          name: $top
          type: integer
        - description: "The ordering expression for the results, using OData notation. Example: '$orderby=name desc'"
          in: query
          name: $orderby
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ArmTemplateList"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - ArmTemplates
      x-ms-odata: "#/definitions/ArmTemplate"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources/{artifactSourceName}/armtemplates/{name}":
    get:
      description: Get azure resource manager template.
      operationId: ArmTemplates_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the artifact source.
          in: path
          name: artifactSourceName
          required: true
          type: string
        - description: The name of the azure resource manager template.
          in: path
          name: name
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=displayName)'"
          in: query
          name: $expand
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ArmTemplate"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - ArmTemplates
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources/{artifactSourceName}/artifacts":
    get:
      description: List artifacts in a given artifact source.
      operationId: Artifacts_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the artifact source.
          in: path
          name: artifactSourceName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=title)'"
          in: query
          name: $expand
          type: string
        - description: "The filter to apply to the operation. Example: '$filter=contains(name,'myName')"
          in: query
          name: $filter
          type: string
        - description: "The maximum number of resources to return from the operation. Example: '$top=10'"
          format: int32
          in: query
          name: $top
          type: integer
        - description: "The ordering expression for the results, using OData notation. Example: '$orderby=name desc'"
          in: query
          name: $orderby
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ArtifactList"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Artifacts
      x-ms-odata: "#/definitions/Artifact"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources/{artifactSourceName}/artifacts/{name}":
    get:
      description: Get artifact.
      operationId: Artifacts_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the artifact source.
          in: path
          name: artifactSourceName
          required: true
          type: string
        - description: The name of the artifact.
          in: path
          name: name
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=title)'"
          in: query
          name: $expand
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Artifact"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Artifacts
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources/{artifactSourceName}/artifacts/{name}/generateArmTemplate":
    post:
      description: Generates an ARM template for the given artifact, uploads the required files to a storage account, and validates the generated artifact.
      operationId: Artifacts_GenerateArmTemplate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the artifact source.
          in: path
          name: artifactSourceName
          required: true
          type: string
        - description: The name of the artifact.
          in: path
          name: name
          required: true
          type: string
        - description: Parameters for generating an ARM template for deploying artifacts.
          in: body
          name: generateArmTemplateRequest
          required: true
          schema:
            $ref: "#/definitions/GenerateArmTemplateRequest"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ArmTemplateInfo"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Artifacts
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources/{name}":
    delete:
      description: Delete artifact source.
      operationId: ArtifactSources_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the artifact source.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - ArtifactSources
    get:
      description: Get artifact source.
      operationId: ArtifactSources_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the artifact source.
          in: path
          name: name
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=displayName)'"
          in: query
          name: $expand
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ArtifactSource"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - ArtifactSources
    patch:
      description: Allows modifying tags of artifact sources. All other properties will be ignored.
      operationId: ArtifactSources_Update
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the artifact source.
          in: path
          name: name
          required: true
          type: string
        - description: Properties of an artifact source.
          in: body
          name: artifactSource
          required: true
          schema:
            $ref: "#/definitions/ArtifactSourceFragment"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ArtifactSource"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - ArtifactSources
    put:
      description: Create or replace an existing artifact source.
      operationId: ArtifactSources_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the artifact source.
          in: path
          name: name
          required: true
          type: string
        - description: Properties of an artifact source.
          in: body
          name: artifactSource
          required: true
          schema:
            $ref: "#/definitions/ArtifactSource"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ArtifactSource"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/ArtifactSource"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - ArtifactSources
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/costs/{name}":
    get:
      description: Get cost.
      operationId: Costs_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the cost.
          in: path
          name: name
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($expand=labCostDetails)'"
          in: query
          name: $expand
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/LabCost"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Costs
    put:
      description: Create or replace an existing cost.
      operationId: Costs_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the cost.
          in: path
          name: name
          required: true
          type: string
        - description: A cost item.
          in: body
          name: labCost
          required: true
          schema:
            $ref: "#/definitions/LabCost"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/LabCost"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/LabCost"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Costs
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/customimages":
    get:
      description: List custom images in a given lab.
      operationId: CustomImages_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=vm)'"
          in: query
          name: $expand
          type: string
        - description: "The filter to apply to the operation. Example: '$filter=contains(name,'myName')"
          in: query
          name: $filter
          type: string
        - description: "The maximum number of resources to return from the operation. Example: '$top=10'"
          format: int32
          in: query
          name: $top
          type: integer
        - description: "The ordering expression for the results, using OData notation. Example: '$orderby=name desc'"
          in: query
          name: $orderby
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/CustomImageList"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - CustomImages
      x-ms-odata: "#/definitions/CustomImage"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/customimages/{name}":
    delete:
      description: Delete custom image. This operation can take a while to complete.
      operationId: CustomImages_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the custom image.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - CustomImages
      x-ms-long-running-operation: true
    get:
      description: Get custom image.
      operationId: CustomImages_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the custom image.
          in: path
          name: name
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=vm)'"
          in: query
          name: $expand
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/CustomImage"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - CustomImages
    patch:
      description: Allows modifying tags of custom images. All other properties will be ignored.
      operationId: CustomImages_Update
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the custom image.
          in: path
          name: name
          required: true
          type: string
        - description: A custom image.
          in: body
          name: customImage
          required: true
          schema:
            $ref: "#/definitions/CustomImageFragment"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/CustomImage"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - CustomImages
    put:
      description: Create or replace an existing custom image. This operation can take a while to complete.
      operationId: CustomImages_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the custom image.
          in: path
          name: name
          required: true
          type: string
        - description: A custom image.
          in: body
          name: customImage
          required: true
          schema:
            $ref: "#/definitions/CustomImage"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/CustomImage"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/CustomImage"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - CustomImages
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/formulas":
    get:
      description: List formulas in a given lab.
      operationId: Formulas_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=description)'"
          in: query
          name: $expand
          type: string
        - description: "The filter to apply to the operation. Example: '$filter=contains(name,'myName')"
          in: query
          name: $filter
          type: string
        - description: "The maximum number of resources to return from the operation. Example: '$top=10'"
          format: int32
          in: query
          name: $top
          type: integer
        - description: "The ordering expression for the results, using OData notation. Example: '$orderby=name desc'"
          in: query
          name: $orderby
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/FormulaList"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Formulas
      x-ms-odata: "#/definitions/Formula"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/formulas/{name}":
    delete:
      description: Delete formula.
      operationId: Formulas_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the formula.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Formulas
    get:
      description: Get formula.
      operationId: Formulas_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the formula.
          in: path
          name: name
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=description)'"
          in: query
          name: $expand
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Formula"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Formulas
    patch:
      description: Allows modifying tags of formulas. All other properties will be ignored.
      operationId: Formulas_Update
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the formula.
          in: path
          name: name
          required: true
          type: string
        - description: A formula for creating a VM, specifying an image base and other parameters
          in: body
          name: formula
          required: true
          schema:
            $ref: "#/definitions/FormulaFragment"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Formula"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Formulas
    put:
      description: Create or replace an existing formula. This operation can take a while to complete.
      operationId: Formulas_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the formula.
          in: path
          name: name
          required: true
          type: string
        - description: A formula for creating a VM, specifying an image base and other parameters
          in: body
          name: formula
          required: true
          schema:
            $ref: "#/definitions/Formula"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Formula"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/Formula"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Formulas
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/galleryimages":
    get:
      description: List gallery images in a given lab.
      operationId: GalleryImages_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=author)'"
          in: query
          name: $expand
          type: string
        - description: "The filter to apply to the operation. Example: '$filter=contains(name,'myName')"
          in: query
          name: $filter
          type: string
        - description: "The maximum number of resources to return from the operation. Example: '$top=10'"
          format: int32
          in: query
          name: $top
          type: integer
        - description: "The ordering expression for the results, using OData notation. Example: '$orderby=name desc'"
          in: query
          name: $orderby
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/GalleryImageList"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - GalleryImages
      x-ms-odata: "#/definitions/GalleryImage"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/notificationchannels":
    get:
      description: List notification channels in a given lab.
      operationId: NotificationChannels_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=webHookUrl)'"
          in: query
          name: $expand
          type: string
        - description: "The filter to apply to the operation. Example: '$filter=contains(name,'myName')"
          in: query
          name: $filter
          type: string
        - description: "The maximum number of resources to return from the operation. Example: '$top=10'"
          format: int32
          in: query
          name: $top
          type: integer
        - description: "The ordering expression for the results, using OData notation. Example: '$orderby=name desc'"
          in: query
          name: $orderby
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/NotificationChannelList"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - NotificationChannels
      x-ms-odata: "#/definitions/NotificationChannel"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/notificationchannels/{name}":
    delete:
      description: Delete notification channel.
      operationId: NotificationChannels_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the notification channel.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - NotificationChannels
    get:
      description: Get notification channel.
      operationId: NotificationChannels_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the notification channel.
          in: path
          name: name
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=webHookUrl)'"
          in: query
          name: $expand
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/NotificationChannel"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - NotificationChannels
    patch:
      description: Allows modifying tags of notification channels. All other properties will be ignored.
      operationId: NotificationChannels_Update
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the notification channel.
          in: path
          name: name
          required: true
          type: string
        - description: A notification.
          in: body
          name: notificationChannel
          required: true
          schema:
            $ref: "#/definitions/NotificationChannelFragment"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/NotificationChannel"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - NotificationChannels
    put:
      description: Create or replace an existing notification channel.
      operationId: NotificationChannels_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the notification channel.
          in: path
          name: name
          required: true
          type: string
        - description: A notification.
          in: body
          name: notificationChannel
          required: true
          schema:
            $ref: "#/definitions/NotificationChannel"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/NotificationChannel"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/NotificationChannel"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - NotificationChannels
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/notificationchannels/{name}/notify":
    post:
      description: Send notification to provided channel.
      operationId: NotificationChannels_Notify
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the notification channel.
          in: path
          name: name
          required: true
          type: string
        - description: Properties for generating a Notification.
          in: body
          name: notifyParameters
          required: true
          schema:
            $ref: "#/definitions/NotifyParameters"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - NotificationChannels
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/policysets/{name}/evaluatePolicies":
    post:
      description: Evaluates lab policy.
      operationId: PolicySets_EvaluatePolicies
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the policy set.
          in: path
          name: name
          required: true
          type: string
        - description: Request body for evaluating a policy set.
          in: body
          name: evaluatePoliciesRequest
          required: true
          schema:
            $ref: "#/definitions/EvaluatePoliciesRequest"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/EvaluatePoliciesResponse"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - PolicySets
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/policysets/{policySetName}/policies":
    get:
      description: List policies in a given policy set.
      operationId: Policies_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the policy set.
          in: path
          name: policySetName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=description)'"
          in: query
          name: $expand
          type: string
        - description: "The filter to apply to the operation. Example: '$filter=contains(name,'myName')"
          in: query
          name: $filter
          type: string
        - description: "The maximum number of resources to return from the operation. Example: '$top=10'"
          format: int32
          in: query
          name: $top
          type: integer
        - description: "The ordering expression for the results, using OData notation. Example: '$orderby=name desc'"
          in: query
          name: $orderby
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/PolicyList"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Policies
      x-ms-odata: "#/definitions/Policy"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/policysets/{policySetName}/policies/{name}":
    delete:
      description: Delete policy.
      operationId: Policies_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the policy set.
          in: path
          name: policySetName
          required: true
          type: string
        - description: The name of the policy.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Policies
    get:
      description: Get policy.
      operationId: Policies_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the policy set.
          in: path
          name: policySetName
          required: true
          type: string
        - description: The name of the policy.
          in: path
          name: name
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=description)'"
          in: query
          name: $expand
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Policy"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Policies
    patch:
      description: Allows modifying tags of policies. All other properties will be ignored.
      operationId: Policies_Update
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the policy set.
          in: path
          name: policySetName
          required: true
          type: string
        - description: The name of the policy.
          in: path
          name: name
          required: true
          type: string
        - description: A Policy.
          in: body
          name: policy
          required: true
          schema:
            $ref: "#/definitions/PolicyFragment"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Policy"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Policies
    put:
      description: Create or replace an existing policy.
      operationId: Policies_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the policy set.
          in: path
          name: policySetName
          required: true
          type: string
        - description: The name of the policy.
          in: path
          name: name
          required: true
          type: string
        - description: A Policy.
          in: body
          name: policy
          required: true
          schema:
            $ref: "#/definitions/Policy"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Policy"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/Policy"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Policies
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/schedules":
    get:
      description: List schedules in a given lab.
      operationId: Schedules_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=status)'"
          in: query
          name: $expand
          type: string
        - description: "The filter to apply to the operation. Example: '$filter=contains(name,'myName')"
          in: query
          name: $filter
          type: string
        - description: "The maximum number of resources to return from the operation. Example: '$top=10'"
          format: int32
          in: query
          name: $top
          type: integer
        - description: "The ordering expression for the results, using OData notation. Example: '$orderby=name desc'"
          in: query
          name: $orderby
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ScheduleList"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Schedules
      x-ms-odata: "#/definitions/Schedule"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/schedules/{name}":
    delete:
      description: Delete schedule.
      operationId: Schedules_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the schedule.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Schedules
    get:
      description: Get schedule.
      operationId: Schedules_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the schedule.
          in: path
          name: name
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=status)'"
          in: query
          name: $expand
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Schedule"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Schedules
    patch:
      description: Allows modifying tags of schedules. All other properties will be ignored.
      operationId: Schedules_Update
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the schedule.
          in: path
          name: name
          required: true
          type: string
        - description: A schedule.
          in: body
          name: schedule
          required: true
          schema:
            $ref: "#/definitions/ScheduleFragment"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Schedule"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Schedules
    put:
      description: Create or replace an existing schedule.
      operationId: Schedules_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the schedule.
          in: path
          name: name
          required: true
          type: string
        - description: A schedule.
          in: body
          name: schedule
          required: true
          schema:
            $ref: "#/definitions/Schedule"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Schedule"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/Schedule"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Schedules
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/schedules/{name}/execute":
    post:
      description: Execute a schedule. This operation can take a while to complete.
      operationId: Schedules_Execute
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the schedule.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Schedules
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/schedules/{name}/listApplicable":
    post:
      description: Lists all applicable schedules
      operationId: Schedules_ListApplicable
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the schedule.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ScheduleList"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Schedules
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/servicerunners/{name}":
    delete:
      description: Delete service runner.
      operationId: ServiceRunners_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the service runner.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - ServiceRunners
    get:
      description: Get service runner.
      operationId: ServiceRunners_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the service runner.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ServiceRunner"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - ServiceRunners
    put:
      description: Create or replace an existing service runner.
      operationId: ServiceRunners_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the service runner.
          in: path
          name: name
          required: true
          type: string
        - description: A container for a managed identity to execute DevTest lab services.
          in: body
          name: serviceRunner
          required: true
          schema:
            $ref: "#/definitions/ServiceRunner"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ServiceRunner"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/ServiceRunner"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - ServiceRunners
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/users":
    get:
      description: List user profiles in a given lab.
      operationId: Users_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=identity)'"
          in: query
          name: $expand
          type: string
        - description: "The filter to apply to the operation. Example: '$filter=contains(name,'myName')"
          in: query
          name: $filter
          type: string
        - description: "The maximum number of resources to return from the operation. Example: '$top=10'"
          format: int32
          in: query
          name: $top
          type: integer
        - description: "The ordering expression for the results, using OData notation. Example: '$orderby=name desc'"
          in: query
          name: $orderby
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/UserList"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Users
      x-ms-odata: "#/definitions/User"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/users/{name}":
    delete:
      description: Delete user profile. This operation can take a while to complete.
      operationId: Users_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Users
      x-ms-long-running-operation: true
    get:
      description: Get user profile.
      operationId: Users_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: name
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=identity)'"
          in: query
          name: $expand
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/User"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Users
    patch:
      description: Allows modifying tags of user profiles. All other properties will be ignored.
      operationId: Users_Update
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: name
          required: true
          type: string
        - description: Profile of a lab user.
          in: body
          name: user
          required: true
          schema:
            $ref: "#/definitions/UserFragment"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/User"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Users
    put:
      description: Create or replace an existing user profile. This operation can take a while to complete.
      operationId: Users_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: name
          required: true
          type: string
        - description: Profile of a lab user.
          in: body
          name: user
          required: true
          schema:
            $ref: "#/definitions/User"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/User"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/User"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Users
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/users/{userName}/disks":
    get:
      description: List disks in a given user profile.
      operationId: Disks_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=diskType)'"
          in: query
          name: $expand
          type: string
        - description: "The filter to apply to the operation. Example: '$filter=contains(name,'myName')"
          in: query
          name: $filter
          type: string
        - description: "The maximum number of resources to return from the operation. Example: '$top=10'"
          format: int32
          in: query
          name: $top
          type: integer
        - description: "The ordering expression for the results, using OData notation. Example: '$orderby=name desc'"
          in: query
          name: $orderby
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/DiskList"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Disks
      x-ms-odata: "#/definitions/Disk"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/users/{userName}/disks/{name}":
    delete:
      description: Delete disk. This operation can take a while to complete.
      operationId: Disks_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: The name of the disk.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Disks
      x-ms-long-running-operation: true
    get:
      description: Get disk.
      operationId: Disks_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: The name of the disk.
          in: path
          name: name
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=diskType)'"
          in: query
          name: $expand
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Disk"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Disks
    patch:
      description: Allows modifying tags of disks. All other properties will be ignored.
      operationId: Disks_Update
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: The name of the disk.
          in: path
          name: name
          required: true
          type: string
        - description: A Disk.
          in: body
          name: disk
          required: true
          schema:
            $ref: "#/definitions/DiskFragment"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Disk"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Disks
    put:
      description: Create or replace an existing disk. This operation can take a while to complete.
      operationId: Disks_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: The name of the disk.
          in: path
          name: name
          required: true
          type: string
        - description: A Disk.
          in: body
          name: disk
          required: true
          schema:
            $ref: "#/definitions/Disk"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Disk"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/Disk"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Disks
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/users/{userName}/disks/{name}/attach":
    post:
      description: Attach and create the lease of the disk to the virtual machine. This operation can take a while to complete.
      operationId: Disks_Attach
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: The name of the disk.
          in: path
          name: name
          required: true
          type: string
        - description: Properties of the disk to attach.
          in: body
          name: attachDiskProperties
          required: true
          schema:
            $ref: "#/definitions/AttachDiskProperties"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Disks
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/users/{userName}/disks/{name}/detach":
    post:
      description: Detach and break the lease of the disk attached to the virtual machine. This operation can take a while to complete.
      operationId: Disks_Detach
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: The name of the disk.
          in: path
          name: name
          required: true
          type: string
        - description: Properties of the disk to detach.
          in: body
          name: detachDiskProperties
          required: true
          schema:
            $ref: "#/definitions/DetachDiskProperties"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Disks
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/users/{userName}/environments":
    get:
      description: List environments in a given user profile.
      operationId: Environments_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=deploymentProperties)'"
          in: query
          name: $expand
          type: string
        - description: "The filter to apply to the operation. Example: '$filter=contains(name,'myName')"
          in: query
          name: $filter
          type: string
        - description: "The maximum number of resources to return from the operation. Example: '$top=10'"
          format: int32
          in: query
          name: $top
          type: integer
        - description: "The ordering expression for the results, using OData notation. Example: '$orderby=name desc'"
          in: query
          name: $orderby
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/DtlEnvironmentList"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Environments
      x-ms-odata: "#/definitions/DtlEnvironment"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/users/{userName}/environments/{name}":
    delete:
      description: Delete environment. This operation can take a while to complete.
      operationId: Environments_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: The name of the environment.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Environments
      x-ms-long-running-operation: true
    get:
      description: Get environment.
      operationId: Environments_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: The name of the environment.
          in: path
          name: name
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=deploymentProperties)'"
          in: query
          name: $expand
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/DtlEnvironment"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Environments
    patch:
      description: Allows modifying tags of environments. All other properties will be ignored.
      operationId: Environments_Update
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: The name of the environment.
          in: path
          name: name
          required: true
          type: string
        - description: An environment, which is essentially an ARM template deployment.
          in: body
          name: dtlEnvironment
          required: true
          schema:
            $ref: "#/definitions/DtlEnvironmentFragment"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/DtlEnvironment"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Environments
    put:
      description: Create or replace an existing environment. This operation can take a while to complete.
      operationId: Environments_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: The name of the environment.
          in: path
          name: name
          required: true
          type: string
        - description: An environment, which is essentially an ARM template deployment.
          in: body
          name: dtlEnvironment
          required: true
          schema:
            $ref: "#/definitions/DtlEnvironment"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/DtlEnvironment"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/DtlEnvironment"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Environments
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/users/{userName}/secrets":
    get:
      description: List secrets in a given user profile.
      operationId: Secrets_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=value)'"
          in: query
          name: $expand
          type: string
        - description: "The filter to apply to the operation. Example: '$filter=contains(name,'myName')"
          in: query
          name: $filter
          type: string
        - description: "The maximum number of resources to return from the operation. Example: '$top=10'"
          format: int32
          in: query
          name: $top
          type: integer
        - description: "The ordering expression for the results, using OData notation. Example: '$orderby=name desc'"
          in: query
          name: $orderby
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/SecretList"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Secrets
      x-ms-odata: "#/definitions/Secret"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/users/{userName}/secrets/{name}":
    delete:
      description: Delete secret.
      operationId: Secrets_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: The name of the secret.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Secrets
    get:
      description: Get secret.
      operationId: Secrets_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: The name of the secret.
          in: path
          name: name
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=value)'"
          in: query
          name: $expand
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Secret"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Secrets
    patch:
      description: Allows modifying tags of secrets. All other properties will be ignored.
      operationId: Secrets_Update
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: The name of the secret.
          in: path
          name: name
          required: true
          type: string
        - description: A secret.
          in: body
          name: secret
          required: true
          schema:
            $ref: "#/definitions/SecretFragment"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Secret"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Secrets
    put:
      description: Create or replace an existing secret. This operation can take a while to complete.
      operationId: Secrets_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: The name of the secret.
          in: path
          name: name
          required: true
          type: string
        - description: A secret.
          in: body
          name: secret
          required: true
          schema:
            $ref: "#/definitions/Secret"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Secret"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/Secret"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Secrets
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/users/{userName}/servicefabrics":
    get:
      description: List service fabrics in a given user profile.
      operationId: ServiceFabrics_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($expand=applicableSchedule)'"
          in: query
          name: $expand
          type: string
        - description: "The filter to apply to the operation. Example: '$filter=contains(name,'myName')"
          in: query
          name: $filter
          type: string
        - description: "The maximum number of resources to return from the operation. Example: '$top=10'"
          format: int32
          in: query
          name: $top
          type: integer
        - description: "The ordering expression for the results, using OData notation. Example: '$orderby=name desc'"
          in: query
          name: $orderby
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ServiceFabricList"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - ServiceFabrics
      x-ms-odata: "#/definitions/ServiceFabric"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/users/{userName}/servicefabrics/{name}":
    delete:
      description: Delete service fabric. This operation can take a while to complete.
      operationId: ServiceFabrics_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: The name of the service fabric.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - ServiceFabrics
      x-ms-long-running-operation: true
    get:
      description: Get service fabric.
      operationId: ServiceFabrics_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: The name of the service fabric.
          in: path
          name: name
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($expand=applicableSchedule)'"
          in: query
          name: $expand
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ServiceFabric"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - ServiceFabrics
    patch:
      description: Allows modifying tags of service fabrics. All other properties will be ignored.
      operationId: ServiceFabrics_Update
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: The name of the service fabric.
          in: path
          name: name
          required: true
          type: string
        - description: A Service Fabric.
          in: body
          name: serviceFabric
          required: true
          schema:
            $ref: "#/definitions/ServiceFabricFragment"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ServiceFabric"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - ServiceFabrics
    put:
      description: Create or replace an existing service fabric. This operation can take a while to complete.
      operationId: ServiceFabrics_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: The name of the service fabric.
          in: path
          name: name
          required: true
          type: string
        - description: A Service Fabric.
          in: body
          name: serviceFabric
          required: true
          schema:
            $ref: "#/definitions/ServiceFabric"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ServiceFabric"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/ServiceFabric"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - ServiceFabrics
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/users/{userName}/servicefabrics/{name}/listApplicableSchedules":
    post:
      description: Lists the applicable start/stop schedules, if any.
      operationId: ServiceFabrics_ListApplicableSchedules
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: The name of the service fabric.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ApplicableSchedule"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - ServiceFabrics
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/users/{userName}/servicefabrics/{name}/start":
    post:
      description: Start a service fabric. This operation can take a while to complete.
      operationId: ServiceFabrics_Start
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: The name of the service fabric.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - ServiceFabrics
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/users/{userName}/servicefabrics/{name}/stop":
    post:
      description: Stop a service fabric This operation can take a while to complete.
      operationId: ServiceFabrics_Stop
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: The name of the service fabric.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - ServiceFabrics
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/users/{userName}/servicefabrics/{serviceFabricName}/schedules":
    get:
      description: List schedules in a given service fabric.
      operationId: ServiceFabricSchedules_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: The name of the service fabric.
          in: path
          name: serviceFabricName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=status)'"
          in: query
          name: $expand
          type: string
        - description: "The filter to apply to the operation. Example: '$filter=contains(name,'myName')"
          in: query
          name: $filter
          type: string
        - description: "The maximum number of resources to return from the operation. Example: '$top=10'"
          format: int32
          in: query
          name: $top
          type: integer
        - description: "The ordering expression for the results, using OData notation. Example: '$orderby=name desc'"
          in: query
          name: $orderby
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ScheduleList"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - ServiceFabricSchedules
      x-ms-odata: "#/definitions/Schedule"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/users/{userName}/servicefabrics/{serviceFabricName}/schedules/{name}":
    delete:
      description: Delete schedule.
      operationId: ServiceFabricSchedules_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: The name of the service fabric.
          in: path
          name: serviceFabricName
          required: true
          type: string
        - description: The name of the schedule.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - ServiceFabricSchedules
    get:
      description: Get schedule.
      operationId: ServiceFabricSchedules_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: The name of the service fabric.
          in: path
          name: serviceFabricName
          required: true
          type: string
        - description: The name of the schedule.
          in: path
          name: name
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=status)'"
          in: query
          name: $expand
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Schedule"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - ServiceFabricSchedules
    patch:
      description: Allows modifying tags of schedules. All other properties will be ignored.
      operationId: ServiceFabricSchedules_Update
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: The name of the service fabric.
          in: path
          name: serviceFabricName
          required: true
          type: string
        - description: The name of the schedule.
          in: path
          name: name
          required: true
          type: string
        - description: A schedule.
          in: body
          name: schedule
          required: true
          schema:
            $ref: "#/definitions/ScheduleFragment"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Schedule"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - ServiceFabricSchedules
    put:
      description: Create or replace an existing schedule.
      operationId: ServiceFabricSchedules_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: The name of the service fabric.
          in: path
          name: serviceFabricName
          required: true
          type: string
        - description: The name of the schedule.
          in: path
          name: name
          required: true
          type: string
        - description: A schedule.
          in: body
          name: schedule
          required: true
          schema:
            $ref: "#/definitions/Schedule"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Schedule"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/Schedule"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - ServiceFabricSchedules
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/users/{userName}/servicefabrics/{serviceFabricName}/schedules/{name}/execute":
    post:
      description: Execute a schedule. This operation can take a while to complete.
      operationId: ServiceFabricSchedules_Execute
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user profile.
          in: path
          name: userName
          required: true
          type: string
        - description: The name of the service fabric.
          in: path
          name: serviceFabricName
          required: true
          type: string
        - description: The name of the schedule.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - ServiceFabricSchedules
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines":
    get:
      description: List virtual machines in a given lab.
      operationId: VirtualMachines_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($expand=artifacts,computeVm,networkInterface,applicableSchedule)'"
          in: query
          name: $expand
          type: string
        - description: "The filter to apply to the operation. Example: '$filter=contains(name,'myName')"
          in: query
          name: $filter
          type: string
        - description: "The maximum number of resources to return from the operation. Example: '$top=10'"
          format: int32
          in: query
          name: $top
          type: integer
        - description: "The ordering expression for the results, using OData notation. Example: '$orderby=name desc'"
          in: query
          name: $orderby
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/LabVirtualMachineList"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualMachines
      x-ms-examples:
        VirtualMachines_List:
          parameters:
            api-version: 2018-09-15
            labName: "{devtestlab-name}"
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/{subscription-id}/resourcegroups/myResourceGroup/providers/microsoft.devtestlab/labs/{devtestlab-name}/virtualmachines/{virtualmachine-name}
                    location: "{azure-location}"
                    name: "{virtualmachine-name}"
                    properties:
                      allowClaim: true
                      artifactDeploymentStatus:
                        artifactsApplied: 0
                        totalArtifacts: 0
                      computeId: /subscriptions/{subscription-id}/resourceGroups/{devtestlab-name}-{virtualmachine-name}-{random-suffix}/providers/Microsoft.Compute/virtualMachines/{virtualmachine-name}
                      createdByUser: ""
                      createdByUserId: ""
                      createdDate: 2018-10-01T16:53:02.4830866-07:00
                      dataDiskParameters: []
                      disallowPublicIpAddress: true
                      galleryImageReference:
                        offer: UbuntuServer
                        osType: Linux
                        publisher: Canonical
                        sku: 16.04-LTS
                        version: Latest
                      labSubnetName: "{virtualnetwork-name}Subnet"
                      labVirtualNetworkId: /subscriptions/{subscription-id}/resourcegroups/myResourceGroup/providers/microsoft.devtestlab/labs/{devtestlab-name}/virtualnetworks/{virtualnetwork-name}
                      networkInterface: {}
                      osType: Linux
                      ownerObjectId: ""
                      ownerUserPrincipalName: ""
                      provisioningState: Succeeded
                      size: Standard_A2_v2
                      storageType: Standard
                      uniqueIdentifier: "{unique-identifier}"
                      userName: "{user-name}"
                      virtualMachineCreationSource: FromGalleryImage
                    tags:
                      MyTag: MyValue
                    type: Microsoft.DevTestLab/labs/virtualMachines
      x-ms-odata: "#/definitions/LabVirtualMachine"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines/{name}":
    delete:
      description: Delete virtual machine. This operation can take a while to complete.
      operationId: VirtualMachines_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualMachines
      x-ms-examples:
        VirtualMachines_Delete:
          parameters:
            api-version: 2018-09-15
            labName: "{devtestlab-name}"
            name: "{virtualmachine-name}"
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200": {}
            "202": {}
            "204": {}
      x-ms-long-running-operation: true
    get:
      description: Get virtual machine.
      operationId: VirtualMachines_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: name
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($expand=artifacts,computeVm,networkInterface,applicableSchedule)'"
          in: query
          name: $expand
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/LabVirtualMachine"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualMachines
      x-ms-examples:
        VirtualMachines_Get:
          parameters:
            api-version: 2018-09-15
            labName: "{devtestlab-name}"
            name: "{virtualmachine-name}"
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourcegroups/myResourceGroup/providers/microsoft.devtestlab/labs/{devtestlab-name}/virtualmachines/{virtualmachine-name}
                location: "{azure-location}"
                name: "{virtualmachine-name}"
                properties:
                  allowClaim: true
                  artifactDeploymentStatus:
                    artifactsApplied: 0
                    totalArtifacts: 0
                  computeId: /subscriptions/{subscription-id}/resourceGroups/{devtestlab-name}-{virtualmachine-name}-{random-suffix}/providers/Microsoft.Compute/virtualMachines/{virtualmachine-name}
                  createdByUser: ""
                  createdByUserId: ""
                  createdDate: 2018-10-01T16:53:02.4830866-07:00
                  dataDiskParameters: []
                  disallowPublicIpAddress: true
                  galleryImageReference:
                    offer: UbuntuServer
                    osType: Linux
                    publisher: Canonical
                    sku: 16.04-LTS
                    version: Latest
                  labSubnetName: "{virtualnetwork-name}Subnet"
                  labVirtualNetworkId: /subscriptions/{subscription-id}/resourcegroups/myResourceGroup/providers/microsoft.devtestlab/labs/{devtestlab-name}/virtualnetworks/{virtualnetwork-name}
                  networkInterface: {}
                  osType: Linux
                  ownerObjectId: ""
                  ownerUserPrincipalName: ""
                  provisioningState: Succeeded
                  size: Standard_A2_v2
                  storageType: Standard
                  uniqueIdentifier: "{unique-identifier}"
                  userName: "{user-name}"
                  virtualMachineCreationSource: FromGalleryImage
                tags:
                  MyTag: MyValue
                type: Microsoft.DevTestLab/labs/virtualMachines
    patch:
      description: Allows modifying tags of virtual machines. All other properties will be ignored.
      operationId: VirtualMachines_Update
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: name
          required: true
          type: string
        - description: A virtual machine.
          in: body
          name: labVirtualMachine
          required: true
          schema:
            $ref: "#/definitions/LabVirtualMachineFragment"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/LabVirtualMachine"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualMachines
      x-ms-examples:
        VirtualMachines_Update:
          parameters:
            api-version: 2018-09-15
            labName: "{devtestlab-name}"
            labVirtualMachine:
              properties:
                notes: Updated notes
            name: "{virtualmachine-name}"
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourcegroups/myResourceGroup/providers/microsoft.devtestlab/labs/{devtestlab-name}/virtualmachines/{virtualmachine-name}
                location: "{azure-location}"
                name: "{virtualmachine-name}"
                properties:
                  allowClaim: true
                  artifactDeploymentStatus:
                    artifactsApplied: 0
                    totalArtifacts: 0
                  computeId: /subscriptions/{subscription-id}/resourceGroups/{devtestlab-name}-{virtualmachine-name}-{random-suffix}/providers/Microsoft.Compute/virtualMachines/{virtualmachine-name}
                  createdByUser: ""
                  createdByUserId: ""
                  createdDate: 2018-10-01T16:53:02.4830866-07:00
                  dataDiskParameters: []
                  disallowPublicIpAddress: true
                  galleryImageReference:
                    offer: UbuntuServer
                    osType: Linux
                    publisher: Canonical
                    sku: 16.04-LTS
                    version: Latest
                  labSubnetName: "{virtualnetwork-name}Subnet"
                  labVirtualNetworkId: /subscriptions/{subscription-id}/resourcegroups/myResourceGroup/providers/microsoft.devtestlab/labs/{devtestlab-name}/virtualnetworks/{virtualnetwork-name}
                  networkInterface: {}
                  osType: Linux
                  ownerObjectId: ""
                  ownerUserPrincipalName: ""
                  provisioningState: Succeeded
                  size: Standard_A2_v2
                  storageType: Standard
                  uniqueIdentifier: "{unique-identifier}"
                  userName: "{user-name}"
                  virtualMachineCreationSource: FromGalleryImage
                tags:
                  MyTag: MyValue
                type: Microsoft.DevTestLab/labs/virtualMachines
    put:
      description: Create or replace an existing virtual machine. This operation can take a while to complete.
      operationId: VirtualMachines_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: name
          required: true
          type: string
        - description: A virtual machine.
          in: body
          name: labVirtualMachine
          required: true
          schema:
            $ref: "#/definitions/LabVirtualMachine"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/LabVirtualMachine"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/LabVirtualMachine"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualMachines
      x-ms-examples:
        VirtualMachines_CreateOrUpdate:
          parameters:
            api-version: 2018-09-15
            labName: "{devtestlab-name}"
            labVirtualMachine:
              location: "{azure-location}"
              properties:
                allowClaim: true
                disallowPublicIpAddress: true
                galleryImageReference:
                  offer: UbuntuServer
                  osType: Linux
                  publisher: Canonical
                  sku: 16.04-LTS
                  version: Latest
                labSubnetName: "{virtualnetwork-name}Subnet"
                labVirtualNetworkId: /subscriptions/{subscription-id}/resourcegroups/myResourceGroup/providers/microsoft.devtestlab/labs/{devtestlab-name}/virtualnetworks/{virtualnetwork-name}
                osType: Linux
                password: "{user-password}"
                size: Standard_A2_v2
                storageType: Standard
                userName: "{user-name}"
              tags:
                MyTag: MyValue
            name: "{virtualmachine-name}"
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourcegroups/myResourceGroup/providers/microsoft.devtestlab/labs/{devtestlab-name}/virtualmachines/{virtualmachine-name}
                location: "{azure-location}"
                name: "{virtualmachine-name}"
                properties:
                  allowClaim: true
                  artifactDeploymentStatus:
                    artifactsApplied: 0
                    totalArtifacts: 0
                  createdByUser: ""
                  createdByUserId: ""
                  createdDate: 2018-10-01T16:53:02.4830866-07:00
                  dataDiskParameters: []
                  disallowPublicIpAddress: true
                  galleryImageReference:
                    offer: UbuntuServer
                    osType: Linux
                    publisher: Canonical
                    sku: 16.04-LTS
                    version: Latest
                  labSubnetName: "{virtualnetwork-name}Subnet"
                  labVirtualNetworkId: /subscriptions/{subscription-id}/resourcegroups/myResourceGroup/providers/microsoft.devtestlab/labs/{devtestlab-name}/virtualnetworks/{virtualnetwork-name}
                  networkInterface: {}
                  ownerObjectId: ""
                  ownerUserPrincipalName: ""
                  provisioningState: Creating
                  size: Standard_A2_v2
                  storageType: Standard
                  uniqueIdentifier: "{unique-identifier}"
                  userName: "{user-name}"
                  virtualMachineCreationSource: FromGalleryImage
                tags:
                  MyTag: MyValue
                type: Microsoft.DevTestLab/labs/virtualMachines
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourcegroups/myResourceGroup/providers/microsoft.devtestlab/labs/{devtestlab-name}/virtualmachines/{virtualmachine-name}
                location: "{azure-location}"
                name: "{virtualmachine-name}"
                properties:
                  allowClaim: true
                  artifactDeploymentStatus:
                    artifactsApplied: 0
                    totalArtifacts: 0
                  createdByUser: ""
                  createdByUserId: ""
                  createdDate: 2018-10-01T16:53:02.4830866-07:00
                  dataDiskParameters: []
                  disallowPublicIpAddress: true
                  galleryImageReference:
                    offer: UbuntuServer
                    osType: Linux
                    publisher: Canonical
                    sku: 16.04-LTS
                    version: Latest
                  labSubnetName: "{virtualnetwork-name}Subnet"
                  labVirtualNetworkId: /subscriptions/{subscription-id}/resourcegroups/myResourceGroup/providers/microsoft.devtestlab/labs/{devtestlab-name}/virtualnetworks/{virtualnetwork-name}
                  networkInterface: {}
                  ownerObjectId: ""
                  ownerUserPrincipalName: ""
                  provisioningState: Creating
                  size: Standard_A2_v2
                  storageType: Standard
                  uniqueIdentifier: "{unique-identifier}"
                  userName: "{user-name}"
                  virtualMachineCreationSource: FromGalleryImage
                tags:
                  MyTag: MyValue
                type: Microsoft.DevTestLab/labs/virtualMachines
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines/{name}/addDataDisk":
    post:
      description: Attach a new or existing data disk to virtual machine. This operation can take a while to complete.
      operationId: VirtualMachines_AddDataDisk
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: name
          required: true
          type: string
        - description: Request body for adding a new or existing data disk to a virtual machine.
          in: body
          name: dataDiskProperties
          required: true
          schema:
            $ref: "#/definitions/DataDiskProperties"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualMachines
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines/{name}/applyArtifacts":
    post:
      description: Apply artifacts to virtual machine. This operation can take a while to complete.
      operationId: VirtualMachines_ApplyArtifacts
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: name
          required: true
          type: string
        - description: Request body for applying artifacts to a virtual machine.
          in: body
          name: applyArtifactsRequest
          required: true
          schema:
            $ref: "#/definitions/ApplyArtifactsRequest"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualMachines
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines/{name}/claim":
    post:
      description: Take ownership of an existing virtual machine This operation can take a while to complete.
      operationId: VirtualMachines_Claim
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualMachines
      x-ms-examples:
        VirtualMachines_Claim:
          parameters:
            api-version: 2018-09-15
            labName: "{devtestlab-name}"
            name: "{virtualmachine-name}"
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200": {}
            "202": {}
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines/{name}/detachDataDisk":
    post:
      description: Detach the specified disk from the virtual machine. This operation can take a while to complete.
      operationId: VirtualMachines_DetachDataDisk
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: name
          required: true
          type: string
        - description: Request body for detaching data disk from a virtual machine.
          in: body
          name: detachDataDiskProperties
          required: true
          schema:
            $ref: "#/definitions/DetachDataDiskProperties"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualMachines
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines/{name}/getRdpFileContents":
    post:
      description: Gets a string that represents the contents of the RDP file for the virtual machine
      operationId: VirtualMachines_GetRdpFileContents
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/RdpConnection"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualMachines
      x-ms-examples:
        VirtualMachines_GetRdpFileContents:
          parameters:
            api-version: 2018-09-15
            labName: "{devtestlab-name}"
            name: "{virtualmachine-name}"
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                contents: "full address:s:10.0.0.4\r

                  prompt for credentials:i:1\r

                  username:s:{virtualmachine-name}\\{user-name}\r\n"
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines/{name}/listApplicableSchedules":
    post:
      description: Lists the applicable start/stop schedules, if any.
      operationId: VirtualMachines_ListApplicableSchedules
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ApplicableSchedule"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualMachines
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines/{name}/redeploy":
    post:
      description: Redeploy a virtual machine This operation can take a while to complete.
      operationId: VirtualMachines_Redeploy
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualMachines
      x-ms-examples:
        VirtualMachines_Redeploy:
          parameters:
            api-version: 2018-09-15
            labName: "{devtestlab-name}"
            monitor: "true"
            name: "{virtualmachine-name}"
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200": {}
            "202": {}
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines/{name}/resize":
    post:
      description: Resize Virtual Machine. This operation can take a while to complete.
      operationId: VirtualMachines_Resize
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: name
          required: true
          type: string
        - description: Request body for resizing a virtual machine.
          in: body
          name: resizeLabVirtualMachineProperties
          required: true
          schema:
            $ref: "#/definitions/ResizeLabVirtualMachineProperties"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualMachines
      x-ms-examples:
        VirtualMachines_Resize:
          parameters:
            api-version: 2018-09-15
            labName: "{devtestlab-name}"
            monitor: "true"
            name: "{virtualmachine-name}"
            resizeLabVirtualMachineProperties:
              size: Standard_A4_v2
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200": {}
            "202": {}
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines/{name}/restart":
    post:
      description: Restart a virtual machine. This operation can take a while to complete.
      operationId: VirtualMachines_Restart
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualMachines
      x-ms-examples:
        VirtualMachines_Restart:
          parameters:
            api-version: 2018-09-15
            labName: "{devtestlab-name}"
            monitor: "true"
            name: "{virtualmachine-name}"
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200": {}
            "202": {}
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines/{name}/start":
    post:
      description: Start a virtual machine. This operation can take a while to complete.
      operationId: VirtualMachines_Start
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualMachines
      x-ms-examples:
        VirtualMachines_Start:
          parameters:
            api-version: 2018-09-15
            labName: "{devtestlab-name}"
            monitor: "true"
            name: "{virtualmachine-name}"
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200": {}
            "202": {}
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines/{name}/stop":
    post:
      description: Stop a virtual machine This operation can take a while to complete.
      operationId: VirtualMachines_Stop
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualMachines
      x-ms-examples:
        VirtualMachines_Stop:
          parameters:
            api-version: 2018-09-15
            labName: "{devtestlab-name}"
            name: "{virtualmachine-name}"
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200": {}
            "202": {}
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines/{name}/transferDisks":
    post:
      description: Transfers all data disks attached to the virtual machine to be owned by the current user. This operation can take a while to complete.
      operationId: VirtualMachines_TransferDisks
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualMachines
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines/{name}/unClaim":
    post:
      description: Release ownership of an existing virtual machine This operation can take a while to complete.
      operationId: VirtualMachines_UnClaim
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualMachines
      x-ms-examples:
        VirtualMachines_UnClaim:
          parameters:
            api-version: 2018-09-15
            labName: "{devtestlab-name}"
            monitor: "true"
            name: "{virtualmachine-name}"
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200": {}
            "202": {}
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines/{virtualMachineName}/schedules":
    get:
      description: List schedules in a given virtual machine.
      operationId: VirtualMachineSchedules_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: virtualMachineName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=status)'"
          in: query
          name: $expand
          type: string
        - description: "The filter to apply to the operation. Example: '$filter=contains(name,'myName')"
          in: query
          name: $filter
          type: string
        - description: "The maximum number of resources to return from the operation. Example: '$top=10'"
          format: int32
          in: query
          name: $top
          type: integer
        - description: "The ordering expression for the results, using OData notation. Example: '$orderby=name desc'"
          in: query
          name: $orderby
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ScheduleList"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualMachineSchedules
      x-ms-odata: "#/definitions/Schedule"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines/{virtualMachineName}/schedules/{name}":
    delete:
      description: Delete schedule.
      operationId: VirtualMachineSchedules_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: virtualMachineName
          required: true
          type: string
        - description: The name of the schedule.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualMachineSchedules
    get:
      description: Get schedule.
      operationId: VirtualMachineSchedules_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: virtualMachineName
          required: true
          type: string
        - description: The name of the schedule.
          in: path
          name: name
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=status)'"
          in: query
          name: $expand
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Schedule"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualMachineSchedules
    patch:
      description: Allows modifying tags of schedules. All other properties will be ignored.
      operationId: VirtualMachineSchedules_Update
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: virtualMachineName
          required: true
          type: string
        - description: The name of the schedule.
          in: path
          name: name
          required: true
          type: string
        - description: A schedule.
          in: body
          name: schedule
          required: true
          schema:
            $ref: "#/definitions/ScheduleFragment"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Schedule"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualMachineSchedules
    put:
      description: Create or replace an existing schedule.
      operationId: VirtualMachineSchedules_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: virtualMachineName
          required: true
          type: string
        - description: The name of the schedule.
          in: path
          name: name
          required: true
          type: string
        - description: A schedule.
          in: body
          name: schedule
          required: true
          schema:
            $ref: "#/definitions/Schedule"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Schedule"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/Schedule"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualMachineSchedules
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines/{virtualMachineName}/schedules/{name}/execute":
    post:
      description: Execute a schedule. This operation can take a while to complete.
      operationId: VirtualMachineSchedules_Execute
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the virtual machine.
          in: path
          name: virtualMachineName
          required: true
          type: string
        - description: The name of the schedule.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualMachineSchedules
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualnetworks":
    get:
      description: List virtual networks in a given lab.
      operationId: VirtualNetworks_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($expand=externalSubnets)'"
          in: query
          name: $expand
          type: string
        - description: "The filter to apply to the operation. Example: '$filter=contains(name,'myName')"
          in: query
          name: $filter
          type: string
        - description: "The maximum number of resources to return from the operation. Example: '$top=10'"
          format: int32
          in: query
          name: $top
          type: integer
        - description: "The ordering expression for the results, using OData notation. Example: '$orderby=name desc'"
          in: query
          name: $orderby
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualNetworkList"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualNetworks
      x-ms-examples:
        VirtualNetworks_List:
          parameters:
            api-version: 2018-09-15
            labName: "{devtestlab-name}"
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/{subscription-id}/resourcegroups/myResourceGroup/providers/microsoft.devtestlab/labs/{devtestlab-name}/virtualnetworks/{virtualnetwork-name}
                    name: "{virtualnetwork-name}"
                    properties:
                      allowedSubnets:
                        - allowPublicIp: Allow
                          labSubnetName: "{virtualnetwork-name}Subnet"
                          resourceId: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{virtualnetwork-name}/subnets/{virtualnetwork-name}Subnet
                      createdDate: 2018-10-01T13:01:44.6005134-07:00
                      externalProviderResourceId: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{virtualnetwork-name}
                      provisioningState: Succeeded
                      subnetOverrides:
                        - labSubnetName: "{virtualnetwork-name}Subnet"
                          resourceId: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{virtualnetwork-name}/subnets/{virtualnetwork-name}Subnet
                          sharedPublicIpAddressConfiguration:
                            allowedPorts:
                              - backendPort: 3389
                                transportProtocol: Tcp
                              - backendPort: 22
                                transportProtocol: Tcp
                          useInVmCreationPermission: Allow
                          usePublicIpAddressPermission: Allow
                      uniqueIdentifier: "{unique-identifier}"
                    tags:
                      MyTag: MyValue
                    type: Microsoft.DevTestLab/labs/virtualNetworks
      x-ms-odata: "#/definitions/VirtualNetwork"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualnetworks/{name}":
    delete:
      description: Delete virtual network. This operation can take a while to complete.
      operationId: VirtualNetworks_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the virtual network.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualNetworks
      x-ms-examples:
        VirtualNetworks_Delete:
          parameters:
            api-version: 2018-09-15
            labName: "{devtestlab-name}"
            name: "{virtualnetwork-name}"
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200": {}
            "202": {}
            "204": {}
      x-ms-long-running-operation: true
    get:
      description: Get virtual network.
      operationId: VirtualNetworks_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the virtual network.
          in: path
          name: name
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($expand=externalSubnets)'"
          in: query
          name: $expand
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualNetwork"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualNetworks
      x-ms-examples:
        VirtualNetworks_Get:
          parameters:
            api-version: 2018-09-15
            labName: "{devtestlab-name}"
            name: "{virtualnetwork-name}"
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourcegroups/myResourceGroup/providers/microsoft.devtestlab/labs/{devtestlab-name}/virtualnetworks/{virtualnetwork-name}
                name: "{virtualnetwork-name}"
                properties:
                  allowedSubnets:
                    - allowPublicIp: Allow
                      labSubnetName: "{virtualnetwork-name}Subnet"
                      resourceId: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{virtualnetwork-name}/subnets/{virtualnetwork-name}Subnet
                  createdDate: 2018-10-01T13:01:44.6005134-07:00
                  externalProviderResourceId: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{virtualnetwork-name}
                  provisioningState: Succeeded
                  subnetOverrides:
                    - labSubnetName: "{virtualnetwork-name}Subnet"
                      resourceId: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{virtualnetwork-name}/subnets/{virtualnetwork-name}Subnet
                      sharedPublicIpAddressConfiguration:
                        allowedPorts:
                          - backendPort: 3389
                            transportProtocol: Tcp
                          - backendPort: 22
                            transportProtocol: Tcp
                      useInVmCreationPermission: Allow
                      usePublicIpAddressPermission: Allow
                  uniqueIdentifier: "{unique-identifier}"
                tags:
                  MyTag: MyValue
                type: Microsoft.DevTestLab/labs/virtualNetworks
    patch:
      description: Allows modifying tags of virtual networks. All other properties will be ignored.
      operationId: VirtualNetworks_Update
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the virtual network.
          in: path
          name: name
          required: true
          type: string
        - description: A virtual network.
          in: body
          name: virtualNetwork
          required: true
          schema:
            $ref: "#/definitions/VirtualNetworkFragment"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualNetwork"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualNetworks
      x-ms-examples:
        VirtualNetworks_Update:
          parameters:
            api-version: 2018-09-15
            labName: "{devtestlab-name}"
            name: "{virtualnetwork-name}"
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            virtualNetwork:
              properties:
                subnetOverrides:
                  - resourceId: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{virtualnetwork-name}/subnets/{virtualnetwork-name}Subnet
                    sharedPublicIpAddressConfiguration:
                      allowedPorts:
                        - backendPort: 3389
                          transportProtocol: Tcp
                        - backendPort: 22
                          transportProtocol: Tcp
                    useInVmCreationPermission: Allow
                    usePublicIpAddressPermission: Deny
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourcegroups/myResourceGroup/providers/microsoft.devtestlab/labs/{devtestlab-name}/virtualnetworks/{virtualnetwork-name}
                name: "{virtualnetwork-name}"
                properties:
                  createdDate: 2018-10-01T13:01:44.6005134-07:00
                  externalProviderResourceId: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{virtualnetwork-name}
                  provisioningState: Succeeded
                  subnetOverrides:
                    - labSubnetName: "{virtualnetwork-name}Subnet"
                      resourceId: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/{virtualnetwork-name}/subnets/{virtualnetwork-name}Subnet
                      sharedPublicIpAddressConfiguration:
                        allowedPorts:
                          - backendPort: 3389
                            transportProtocol: Tcp
                          - backendPort: 22
                            transportProtocol: Tcp
                      useInVmCreationPermission: Allow
                      usePublicIpAddressPermission: Allow
                  uniqueIdentifier: "{unique-identifier}"
                tags:
                  MyTag: MyValue
                type: Microsoft.DevTestLab/labs/virtualNetworks
    put:
      description: Create or replace an existing virtual network. This operation can take a while to complete.
      operationId: VirtualNetworks_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the virtual network.
          in: path
          name: name
          required: true
          type: string
        - description: A virtual network.
          in: body
          name: virtualNetwork
          required: true
          schema:
            $ref: "#/definitions/VirtualNetwork"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualNetwork"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/VirtualNetwork"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - VirtualNetworks
      x-ms-examples:
        VirtualNetworks_CreateOrUpdate:
          parameters:
            api-version: 2018-09-15
            labName: "{devtestlab-name}"
            name: "{virtualnetwork-name}"
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
            virtualNetwork:
              location: "{azure-location}"
              tags:
                MyTag: MyValue
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourcegroups/myResourceGroup/providers/microsoft.devtestlab/labs/{devtestlab-name}/virtualnetworks/{virtualnetwork-name}
                name: "{virtualnetwork-name}"
                properties:
                  createdDate: 2018-10-01T13:01:44.6005134-07:00
                  provisioningState: Creating
                  uniqueIdentifier: "{unique-identifier}"
                tags:
                  MyTag: MyValue
                type: Microsoft.DevTestLab/labs/virtualNetworks
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourcegroups/myResourceGroup/providers/microsoft.devtestlab/labs/{devtestlab-name}/virtualnetworks/{virtualnetwork-name}
                name: "{virtualnetwork-name}"
                properties:
                  createdDate: 2018-10-01T13:01:44.6005134-07:00
                  provisioningState: Creating
                  uniqueIdentifier: "{unique-identifier}"
                tags:
                  MyTag: MyValue
                type: Microsoft.DevTestLab/labs/virtualNetworks
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}":
    delete:
      description: Delete lab. This operation can take a while to complete.
      operationId: Labs_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Labs
      x-ms-examples:
        Labs_Delete:
          parameters:
            api-version: 2018-09-15
            name: "{devtestlab-name}"
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200": {}
            "202": {}
            "204": {}
      x-ms-long-running-operation: true
    get:
      description: Get lab.
      operationId: Labs_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: name
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=defaultStorageAccount)'"
          in: query
          name: $expand
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Lab"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Labs
      x-ms-examples:
        Labs_Get:
          parameters:
            api-version: 2018-09-15
            name: "{devtestlab-name}"
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourcegroups/myResourceGroup/providers/microsoft.devtestlab/labs/{devtestlab-name}
                location: "{azure-location}"
                name: "{devtestlab-name}"
                properties:
                  announcement:
                    enabled: Disabled
                    expired: false
                    markdown: ""
                    title: ""
                  artifactsStorageAccount: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageaccount-name}
                  createdDate: 2018-10-01T18:40:48.1739018-07:00
                  defaultPremiumStorageAccount: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageaccount-name}
                  defaultStorageAccount: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageaccount-name}
                  environmentPermission: Reader
                  labStorageType: Standard
                  mandatoryArtifactsResourceIdsLinux: []
                  mandatoryArtifactsResourceIdsWindows: []
                  premiumDataDiskStorageAccount: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageaccount-name}
                  premiumDataDisks: Disabled
                  provisioningState: Succeeded
                  support:
                    enabled: Disabled
                    markdown: ""
                  uniqueIdentifier: "{unique-identifier}"
                  vaultName: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/{keyvault-name}
                tags:
                  MyTag: MyValue
                type: Microsoft.DevTestLab/labs
    patch:
      description: Allows modifying tags of labs. All other properties will be ignored.
      operationId: Labs_Update
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: name
          required: true
          type: string
        - description: A lab.
          in: body
          name: lab
          required: true
          schema:
            $ref: "#/definitions/LabFragment"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Lab"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Labs
      x-ms-examples:
        Labs_Update:
          parameters:
            api-version: 2018-09-15
            lab:
              properties:
                labStorageType: Premium
            name: "{devtestlab-name}"
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourcegroups/myResourceGroup/providers/microsoft.devtestlab/labs/{devtestlab-name}
                location: "{azure-location}"
                name: "{devtestlab-name}"
                properties:
                  announcement:
                    enabled: Disabled
                    expired: false
                    markdown: ""
                    title: ""
                  createdDate: 2018-10-01T18:40:48.1739018-07:00
                  environmentPermission: Reader
                  labStorageType: Standard
                  mandatoryArtifactsResourceIdsLinux: []
                  mandatoryArtifactsResourceIdsWindows: []
                  premiumDataDisks: Disabled
                  provisioningState: Succeeded
                  support:
                    enabled: Disabled
                    markdown: ""
                  uniqueIdentifier: "{unique-identifier}"
                  vaultName: /subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/{keyvault-name}
                tags:
                  MyTag: MyValue
                type: Microsoft.DevTestLab/labs
    put:
      description: Create or replace an existing lab. This operation can take a while to complete.
      operationId: Labs_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: name
          required: true
          type: string
        - description: A lab.
          in: body
          name: lab
          required: true
          schema:
            $ref: "#/definitions/Lab"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Lab"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/Lab"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Labs
      x-ms-examples:
        Labs_CreateOrUpdate:
          parameters:
            api-version: 2018-09-15
            lab:
              location: "{azure-location}"
              properties:
                labStorageType: "{Standard|Premium}"
              tags:
                MyTag: MyValue
            name: "{devtestlab-name}"
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourcegroups/myResourceGroup/providers/microsoft.devtestlab/labs/{devtestlab-name}
                location: "{azure-location}"
                name: "{devtestlab-name}"
                properties:
                  announcement:
                    enabled: Disabled
                    expired: false
                    markdown: ""
                    title: ""
                  createdDate: 2018-10-01T18:40:48.1739018-07:00
                  environmentPermission: Reader
                  labStorageType: Standard
                  mandatoryArtifactsResourceIdsLinux: []
                  mandatoryArtifactsResourceIdsWindows: []
                  premiumDataDisks: Disabled
                  provisioningState: Creating
                  support:
                    enabled: Disabled
                    markdown: ""
                  uniqueIdentifier: "{unique-identifier}"
                tags:
                  MyTag: MyValue
                type: Microsoft.DevTestLab/labs
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourcegroups/myResourceGroup/providers/microsoft.devtestlab/labs/{devtestlab-name}
                location: "{azure-location}"
                name: "{devtestlab-name}"
                properties:
                  announcement:
                    enabled: Disabled
                    expired: false
                    markdown: ""
                    title: ""
                  createdDate: 2018-10-01T18:40:48.1739018-07:00
                  environmentPermission: Reader
                  labStorageType: Standard
                  mandatoryArtifactsResourceIdsLinux: []
                  mandatoryArtifactsResourceIdsWindows: []
                  premiumDataDisks: Disabled
                  provisioningState: Creating
                  support:
                    enabled: Disabled
                    markdown: ""
                  uniqueIdentifier: "{unique-identifier}"
                tags:
                  MyTag: MyValue
                type: Microsoft.DevTestLab/labs
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/claimAnyVm":
    post:
      description: Claim a random claimable virtual machine in the lab. This operation can take a while to complete.
      operationId: Labs_ClaimAnyVm
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Labs
      x-ms-examples:
        Labs_ClaimAnyVm:
          parameters:
            api-version: 2018-09-15
            monitor: "true"
            name: "{devtestlab-name}"
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200": {}
            "202": {}
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/createEnvironment":
    post:
      description: Create virtual machines in a lab. This operation can take a while to complete.
      operationId: Labs_CreateEnvironment
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: name
          required: true
          type: string
        - description: Properties for creating a virtual machine.
          in: body
          name: labVirtualMachineCreationParameter
          required: true
          schema:
            $ref: "#/definitions/LabVirtualMachineCreationParameter"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Labs
      x-ms-examples:
        Labs_CreateEnvironment:
          parameters:
            api-version: 2018-09-15
            labVirtualMachineCreationParameter:
              location: "{azure-location}"
              name: "{virtualmachine-name}"
              properties:
                allowClaim: true
                disallowPublicIpAddress: true
                galleryImageReference:
                  offer: UbuntuServer
                  osType: Linux
                  publisher: Canonical
                  sku: 16.04-LTS
                  version: Latest
                labSubnetName: "{virtualnetwork-subnet-name}"
                labVirtualNetworkId: /subscriptions/{subscription-id}/resourcegroups/myResourceGroup/providers/microsoft.devtestlab/labs/{devtestlab-name}/virtualnetworks/{virtualnetwork-name}
                osType: Linux
                password: "{user-password}"
                size: Standard_A2_v2
                storageType: Standard
                userName: "{user-name}"
              tags:
                MyTag: MyValue
            name: "{devtestlab-name}"
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200": {}
            "202": {}
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/exportResourceUsage":
    post:
      description: Exports the lab resource usage into a storage account This operation can take a while to complete.
      operationId: Labs_ExportResourceUsage
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: name
          required: true
          type: string
        - description: The parameters of the export operation.
          in: body
          name: exportResourceUsageParameters
          required: true
          schema:
            $ref: "#/definitions/ExportResourceUsageParameters"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Labs
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/generateUploadUri":
    post:
      description: Generate a URI for uploading custom disk images to a Lab.
      operationId: Labs_GenerateUploadUri
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: name
          required: true
          type: string
        - description: Properties for generating an upload URI.
          in: body
          name: generateUploadUriParameter
          required: true
          schema:
            $ref: "#/definitions/GenerateUploadUriParameter"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/GenerateUploadUriResponse"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Labs
      x-ms-examples:
        Labs_GenerateUploadUri:
          parameters:
            api-version: 2018-09-15
            generateUploadUriParameter:
              blobName: "{blob-name}"
            name: "{devtestlab-name}"
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                uploadUri: https://{storage-name}.blob.core.windows.net/uploads/{blob-name}?sv=2017-04-17&sr=b&sig={signature}&st=2018-10-02T01:55:24Z&se=2018-10-03T02:10:23Z&sp=rcw
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/importVirtualMachine":
    post:
      description: Import a virtual machine into a different lab. This operation can take a while to complete.
      operationId: Labs_ImportVirtualMachine
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: name
          required: true
          type: string
        - description: This represents the payload required to import a virtual machine from a different lab into the current one
          in: body
          name: importLabVirtualMachineRequest
          required: true
          schema:
            $ref: "#/definitions/ImportLabVirtualMachineRequest"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Labs
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/listVhds":
    post:
      description: List disk images available for custom image creation.
      operationId: Labs_ListVhds
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/LabVhdList"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - Labs
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/schedules":
    get:
      description: List schedules in a resource group.
      operationId: GlobalSchedules_ListByResourceGroup
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: "Specify the $expand query. Example: 'properties($select=status)'"
          in: query
          name: $expand
          type: string
        - description: "The filter to apply to the operation. Example: '$filter=contains(name,'myName')"
          in: query
          name: $filter
          type: string
        - description: "The maximum number of resources to return from the operation. Example: '$top=10'"
          format: int32
          in: query
          name: $top
          type: integer
        - description: "The ordering expression for the results, using OData notation. Example: '$orderby=name desc'"
          in: query
          name: $orderby
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ScheduleList"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - GlobalSchedules
      x-ms-odata: "#/definitions/Schedule"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/schedules/{name}":
    delete:
      description: Delete schedule.
      operationId: GlobalSchedules_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the schedule.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - GlobalSchedules
    get:
      description: Get schedule.
      operationId: GlobalSchedules_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the schedule.
          in: path
          name: name
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=status)'"
          in: query
          name: $expand
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Schedule"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - GlobalSchedules
    patch:
      description: Allows modifying tags of schedules. All other properties will be ignored.
      operationId: GlobalSchedules_Update
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the schedule.
          in: path
          name: name
          required: true
          type: string
        - description: A schedule.
          in: body
          name: schedule
          required: true
          schema:
            $ref: "#/definitions/ScheduleFragment"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Schedule"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - GlobalSchedules
    put:
      description: Create or replace an existing schedule.
      operationId: GlobalSchedules_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the schedule.
          in: path
          name: name
          required: true
          type: string
        - description: A schedule.
          in: body
          name: schedule
          required: true
          schema:
            $ref: "#/definitions/Schedule"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Schedule"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/Schedule"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - GlobalSchedules
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/schedules/{name}/execute":
    post:
      description: Execute a schedule. This operation can take a while to complete.
      operationId: GlobalSchedules_Execute
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the schedule.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - GlobalSchedules
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/schedules/{name}/retarget":
    post:
      description: Updates a schedule's target resource Id. This operation can take a while to complete.
      operationId: GlobalSchedules_Retarget
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the schedule.
          in: path
          name: name
          required: true
          type: string
        - description: Properties for retargeting a virtual machine schedule.
          in: body
          name: retargetScheduleProperties
          required: true
          schema:
            $ref: "#/definitions/RetargetScheduleProperties"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      tags:
        - GlobalSchedules
      x-ms-long-running-operation: true
definitions:
  ApplicableSchedule:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Schedules applicable to a virtual machine. The schedules may have been defined on a VM or on lab level.
    properties:
      properties:
        $ref: "#/definitions/ApplicableScheduleProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
    required:
      - properties
    type: object
  ApplicableScheduleFragment:
    allOf:
      - $ref: "#/definitions/UpdateResource"
    description: Schedules applicable to a virtual machine. The schedules may have been defined on a VM or on lab level.
    properties:
      properties:
        $ref: "#/definitions/ApplicableSchedulePropertiesFragment"
        description: The properties of the resource.
        x-ms-client-flatten: true
    type: object
  ApplicableScheduleProperties:
    description: Properties of a schedules applicable to a virtual machine.
    properties:
      labVmsShutdown:
        $ref: "#/definitions/Schedule"
        description: The auto-shutdown schedule, if one has been set at the lab or lab resource level.
      labVmsStartup:
        $ref: "#/definitions/Schedule"
        description: The auto-startup schedule, if one has been set at the lab or lab resource level.
    type: object
  ApplicableSchedulePropertiesFragment:
    description: Properties of a schedules applicable to a virtual machine.
    properties:
      labVmsShutdown:
        $ref: "#/definitions/ScheduleFragment"
        description: The auto-shutdown schedule, if one has been set at the lab or lab resource level.
      labVmsStartup:
        $ref: "#/definitions/ScheduleFragment"
        description: The auto-startup schedule, if one has been set at the lab or lab resource level.
    type: object
  ApplyArtifactsRequest:
    description: Request body for applying artifacts to a virtual machine.
    properties:
      artifacts:
        description: The list of artifacts to apply.
        items:
          $ref: "#/definitions/ArtifactInstallProperties"
        type: array
    type: object
  ArmTemplate:
    allOf:
      - $ref: "#/definitions/Resource"
    description: An Azure Resource Manager template.
    properties:
      properties:
        $ref: "#/definitions/ArmTemplateProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
    required:
      - properties
    type: object
  ArmTemplateInfo:
    description: Information about a generated ARM template.
    properties:
      parameters:
        description: The parameters of the ARM template.
        type: object
      template:
        description: The template's contents.
        type: object
    type: object
  ArmTemplateList:
    description: The response of a list operation.
    properties:
      nextLink:
        description: Link for next set of results.
        type: string
      value:
        description: Results of the list operation.
        items:
          $ref: "#/definitions/ArmTemplate"
        type: array
    type: object
  ArmTemplateParameterProperties:
    description: Properties of an Azure Resource Manager template parameter.
    properties:
      name:
        description: The name of the template parameter.
        type: string
      value:
        description: The value of the template parameter.
        type: string
    type: object
  ArmTemplateParameterPropertiesFragment:
    description: Properties of an Azure Resource Manager template parameter.
    properties:
      name:
        description: The name of the template parameter.
        type: string
      value:
        description: The value of the template parameter.
        type: string
    type: object
  ArmTemplateProperties:
    description: Properties of an Azure Resource Manager template.
    properties:
      contents:
        description: The contents of the ARM template.
        readOnly: true
        type: object
      createdDate:
        description: The creation date of the armTemplate.
        format: date-time
        readOnly: true
        type: string
      description:
        description: The description of the ARM template.
        readOnly: true
        type: string
      displayName:
        description: The display name of the ARM template.
        readOnly: true
        type: string
      enabled:
        description: Whether or not ARM template is enabled for use by lab user.
        readOnly: true
        type: boolean
      icon:
        description: The URI to the icon of the ARM template.
        readOnly: true
        type: string
      parametersValueFilesInfo:
        description: File name and parameter values information from all azuredeploy.*.parameters.json for the ARM template.
        items:
          $ref: "#/definitions/ParametersValueFileInfo"
        readOnly: true
        type: array
      publisher:
        description: The publisher of the ARM template.
        readOnly: true
        type: string
    type: object
  Artifact:
    allOf:
      - $ref: "#/definitions/Resource"
    description: An artifact.
    properties:
      properties:
        $ref: "#/definitions/ArtifactProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
    required:
      - properties
    type: object
  ArtifactDeploymentStatusProperties:
    description: Properties of an artifact deployment.
    properties:
      artifactsApplied:
        description: The total count of the artifacts that were successfully applied.
        format: int32
        type: integer
      deploymentStatus:
        description: The deployment status of the artifact.
        type: string
      totalArtifacts:
        description: The total count of the artifacts that were tentatively applied.
        format: int32
        type: integer
    type: object
  ArtifactDeploymentStatusPropertiesFragment:
    description: Properties of an artifact deployment.
    properties:
      artifactsApplied:
        description: The total count of the artifacts that were successfully applied.
        format: int32
        type: integer
      deploymentStatus:
        description: The deployment status of the artifact.
        type: string
      totalArtifacts:
        description: The total count of the artifacts that were tentatively applied.
        format: int32
        type: integer
    type: object
  ArtifactInstallProperties:
    description: Properties of an artifact.
    properties:
      artifactId:
        description: The artifact's identifier.
        type: string
      artifactTitle:
        description: The artifact's title.
        type: string
      deploymentStatusMessage:
        description: The status message from the deployment.
        type: string
      installTime:
        description: The time that the artifact starts to install on the virtual machine.
        format: date-time
        type: string
      parameters:
        description: The parameters of the artifact.
        items:
          $ref: "#/definitions/ArtifactParameterProperties"
        type: array
      status:
        description: The status of the artifact.
        type: string
      vmExtensionStatusMessage:
        description: The status message from the virtual machine extension.
        type: string
    type: object
  ArtifactInstallPropertiesFragment:
    description: Properties of an artifact.
    properties:
      artifactId:
        description: The artifact's identifier.
        type: string
      artifactTitle:
        description: The artifact's title.
        type: string
      deploymentStatusMessage:
        description: The status message from the deployment.
        type: string
      installTime:
        description: The time that the artifact starts to install on the virtual machine.
        format: date-time
        type: string
      parameters:
        description: The parameters of the artifact.
        items:
          $ref: "#/definitions/ArtifactParameterPropertiesFragment"
        type: array
      status:
        description: The status of the artifact.
        type: string
      vmExtensionStatusMessage:
        description: The status message from the virtual machine extension.
        type: string
    type: object
  ArtifactList:
    description: The response of a list operation.
    properties:
      nextLink:
        description: Link for next set of results.
        type: string
      value:
        description: Results of the list operation.
        items:
          $ref: "#/definitions/Artifact"
        type: array
    type: object
  ArtifactParameterProperties:
    description: Properties of an artifact parameter.
    properties:
      name:
        description: The name of the artifact parameter.
        type: string
      value:
        description: The value of the artifact parameter.
        type: string
    type: object
  ArtifactParameterPropertiesFragment:
    description: Properties of an artifact parameter.
    properties:
      name:
        description: The name of the artifact parameter.
        type: string
      value:
        description: The value of the artifact parameter.
        type: string
    type: object
  ArtifactProperties:
    description: Properties of an artifact.
    properties:
      createdDate:
        description: The artifact's creation date.
        format: date-time
        readOnly: true
        type: string
      description:
        description: The artifact's description.
        readOnly: true
        type: string
      filePath:
        description: The file path to the artifact.
        readOnly: true
        type: string
      icon:
        description: The URI to the artifact icon.
        readOnly: true
        type: string
      parameters:
        description: The artifact's parameters.
        readOnly: true
        type: object
      publisher:
        description: The artifact's publisher.
        readOnly: true
        type: string
      targetOsType:
        description: The artifact's target OS.
        readOnly: true
        type: string
      title:
        description: The artifact's title.
        readOnly: true
        type: string
    type: object
  ArtifactSource:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Properties of an artifact source.
    properties:
      properties:
        $ref: "#/definitions/ArtifactSourceProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
    required:
      - properties
    type: object
  ArtifactSourceFragment:
    allOf:
      - $ref: "#/definitions/UpdateResource"
    description: Properties of an artifact source.
    properties:
      properties:
        $ref: "#/definitions/ArtifactSourcePropertiesFragment"
        description: The properties of the resource.
        x-ms-client-flatten: true
    type: object
  ArtifactSourceList:
    description: The response of a list operation.
    properties:
      nextLink:
        description: Link for next set of results.
        type: string
      value:
        description: Results of the list operation.
        items:
          $ref: "#/definitions/ArtifactSource"
        type: array
    type: object
  ArtifactSourceProperties:
    description: Properties of an artifact source.
    properties:
      armTemplateFolderPath:
        description: The folder containing Azure Resource Manager templates.
        type: string
      branchRef:
        description: The artifact source's branch reference.
        type: string
      createdDate:
        description: The artifact source's creation date.
        format: date-time
        readOnly: true
        type: string
      displayName:
        description: The artifact source's display name.
        type: string
      folderPath:
        description: The folder containing artifacts.
        type: string
      provisioningState:
        description: The provisioning status of the resource.
        readOnly: true
        type: string
      securityToken:
        description: The security token to authenticate to the artifact source.
        type: string
      sourceType:
        description: The artifact source's type.
        enum:
          - VsoGit
          - GitHub
        type: string
        x-ms-enum:
          modelAsString: true
          name: SourceControlType
      status:
        description: "Indicates if the artifact source is enabled (values: Enabled, Disabled)."
        enum:
          - Enabled
          - Disabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: EnableStatus
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        readOnly: true
        type: string
      uri:
        description: The artifact source's URI.
        type: string
    type: object
  ArtifactSourcePropertiesFragment:
    description: Properties of an artifact source.
    properties:
      armTemplateFolderPath:
        description: The folder containing Azure Resource Manager templates.
        type: string
      branchRef:
        description: The artifact source's branch reference.
        type: string
      displayName:
        description: The artifact source's display name.
        type: string
      folderPath:
        description: The folder containing artifacts.
        type: string
      securityToken:
        description: The security token to authenticate to the artifact source.
        type: string
      sourceType:
        description: The artifact source's type.
        enum:
          - VsoGit
          - GitHub
        type: string
        x-ms-enum:
          modelAsString: true
          name: SourceControlType
      status:
        description: "Indicates if the artifact source is enabled (values: Enabled, Disabled)."
        enum:
          - Enabled
          - Disabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: EnableStatus
      uri:
        description: The artifact source's URI.
        type: string
    type: object
  AttachDiskProperties:
    description: Properties of the disk to attach.
    properties:
      leasedByLabVmId:
        description: The resource ID of the Lab virtual machine to which the disk is attached.
        type: string
    type: object
  AttachNewDataDiskOptions:
    description: Properties to attach new disk to the Virtual Machine.
    properties:
      diskName:
        description: The name of the disk to be attached.
        type: string
      diskSizeGiB:
        description: Size of the disk to be attached in GibiBytes.
        format: int32
        type: integer
      diskType:
        description: The storage type for the disk (i.e. Standard, Premium).
        enum:
          - Standard
          - Premium
          - StandardSSD
        type: string
        x-ms-enum:
          modelAsString: true
          name: StorageType
    type: object
  AttachNewDataDiskOptionsFragment:
    description: Properties to attach new disk to the Virtual Machine.
    properties:
      diskName:
        description: The name of the disk to be attached.
        type: string
      diskSizeGiB:
        description: Size of the disk to be attached in GibiBytes.
        format: int32
        type: integer
      diskType:
        description: The storage type for the disk (i.e. Standard, Premium).
        enum:
          - Standard
          - Premium
          - StandardSSD
        type: string
        x-ms-enum:
          modelAsString: true
          name: StorageType
    type: object
  BulkCreationParameters:
    description: Parameters for creating multiple virtual machines as a single action.
    properties:
      instanceCount:
        description: The number of virtual machine instances to create.
        format: int32
        type: integer
    type: object
  BulkCreationParametersFragment:
    description: Parameters for creating multiple virtual machines as a single action.
    properties:
      instanceCount:
        description: The number of virtual machine instances to create.
        format: int32
        type: integer
    type: object
  CloudError:
    description: Error from a REST request.
    properties:
      error:
        $ref: "#/definitions/CloudErrorBody"
        description: The cloud error that occurred
    type: object
    x-ms-external: true
  CloudErrorBody:
    description: Body of an error from a REST request.
    properties:
      code:
        description: The error code.
        type: string
      details:
        description: Inner errors.
        items:
          $ref: "#/definitions/CloudErrorBody"
        type: array
      message:
        description: The error message.
        type: string
      target:
        description: The error target.
        type: string
    type: object
    x-ms-external: true
  ComputeDataDisk:
    description: A data disks attached to a virtual machine.
    properties:
      diskSizeGiB:
        description: Gets data disk size in GiB.
        format: int32
        type: integer
      diskUri:
        description: When backed by a blob, the URI of underlying blob.
        type: string
      managedDiskId:
        description: When backed by managed disk, this is the ID of the compute disk resource.
        type: string
      name:
        description: Gets data disk name.
        type: string
    type: object
  ComputeDataDiskFragment:
    description: A data disks attached to a virtual machine.
    properties:
      diskSizeGiB:
        description: Gets data disk size in GiB.
        format: int32
        type: integer
      diskUri:
        description: When backed by a blob, the URI of underlying blob.
        type: string
      managedDiskId:
        description: When backed by managed disk, this is the ID of the compute disk resource.
        type: string
      name:
        description: Gets data disk name.
        type: string
    type: object
  ComputeVmInstanceViewStatus:
    description: Status information about a virtual machine.
    properties:
      code:
        description: Gets the status Code.
        type: string
      displayStatus:
        description: Gets the short localizable label for the status.
        type: string
      message:
        description: Gets the message associated with the status.
        type: string
    type: object
  ComputeVmInstanceViewStatusFragment:
    description: Status information about a virtual machine.
    properties:
      code:
        description: Gets the status Code.
        type: string
      displayStatus:
        description: Gets the short localizable label for the status.
        type: string
      message:
        description: Gets the message associated with the status.
        type: string
    type: object
  ComputeVmProperties:
    description: Properties of a virtual machine returned by the Microsoft.Compute API.
    properties:
      dataDiskIds:
        description: Gets data disks blob uri for the virtual machine.
        items:
          type: string
        type: array
      dataDisks:
        description: Gets all data disks attached to the virtual machine.
        items:
          $ref: "#/definitions/ComputeDataDisk"
        type: array
      networkInterfaceId:
        description: Gets the network interface ID of the virtual machine.
        type: string
      osDiskId:
        description: Gets OS disk blob uri for the virtual machine.
        type: string
      osType:
        description: Gets the OS type of the virtual machine.
        type: string
      statuses:
        description: Gets the statuses of the virtual machine.
        items:
          $ref: "#/definitions/ComputeVmInstanceViewStatus"
        type: array
      vmSize:
        description: Gets the size of the virtual machine.
        type: string
    type: object
  ComputeVmPropertiesFragment:
    description: Properties of a virtual machine returned by the Microsoft.Compute API.
    properties:
      dataDiskIds:
        description: Gets data disks blob uri for the virtual machine.
        items:
          type: string
        type: array
      dataDisks:
        description: Gets all data disks attached to the virtual machine.
        items:
          $ref: "#/definitions/ComputeDataDiskFragment"
        type: array
      networkInterfaceId:
        description: Gets the network interface ID of the virtual machine.
        type: string
      osDiskId:
        description: Gets OS disk blob uri for the virtual machine.
        type: string
      osType:
        description: Gets the OS type of the virtual machine.
        type: string
      statuses:
        description: Gets the statuses of the virtual machine.
        items:
          $ref: "#/definitions/ComputeVmInstanceViewStatusFragment"
        type: array
      vmSize:
        description: Gets the size of the virtual machine.
        type: string
    type: object
  CostThresholdProperties:
    description: Properties of a cost threshold item.
    properties:
      displayOnChart:
        description: Indicates whether this threshold will be displayed on cost charts.
        enum:
          - Enabled
          - Disabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: CostThresholdStatus
      notificationSent:
        description: Indicates the datetime when notifications were last sent for this threshold.
        type: string
      percentageThreshold:
        $ref: "#/definitions/PercentageCostThresholdProperties"
        description: The value of the percentage cost threshold.
      sendNotificationWhenExceeded:
        description: Indicates whether notifications will be sent when this threshold is exceeded.
        enum:
          - Enabled
          - Disabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: CostThresholdStatus
      thresholdId:
        description: The ID of the cost threshold item.
        type: string
    type: object
  CustomImage:
    allOf:
      - $ref: "#/definitions/Resource"
    description: A custom image.
    properties:
      properties:
        $ref: "#/definitions/CustomImageProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
    required:
      - properties
    type: object
  CustomImageFragment:
    allOf:
      - $ref: "#/definitions/UpdateResource"
    description: A custom image.
    properties:
      properties:
        $ref: "#/definitions/CustomImagePropertiesFragment"
        description: The properties of the resource.
        x-ms-client-flatten: true
    type: object
  CustomImageList:
    description: The response of a list operation.
    properties:
      nextLink:
        description: Link for next set of results.
        type: string
      value:
        description: Results of the list operation.
        items:
          $ref: "#/definitions/CustomImage"
        type: array
    type: object
  CustomImageProperties:
    description: Properties of a custom image.
    properties:
      author:
        description: The author of the custom image.
        type: string
      creationDate:
        description: The creation date of the custom image.
        format: date-time
        readOnly: true
        type: string
      customImagePlan:
        $ref: "#/definitions/CustomImagePropertiesFromPlan"
        description: Storage information about the plan related to this custom image
      dataDiskStorageInfo:
        description: Storage information about the data disks present in the custom image
        items:
          $ref: "#/definitions/DataDiskStorageTypeInfo"
        type: array
      description:
        description: The description of the custom image.
        type: string
      isPlanAuthorized:
        description: Whether or not the custom images underlying offer/plan has been enabled for programmatic deployment
        type: boolean
      managedImageId:
        description: The Managed Image Id backing the custom image.
        type: string
      managedSnapshotId:
        description: The Managed Snapshot Id backing the custom image.
        type: string
      provisioningState:
        description: The provisioning status of the resource.
        readOnly: true
        type: string
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        readOnly: true
        type: string
      vhd:
        $ref: "#/definitions/CustomImagePropertiesCustom"
        description: The VHD from which the image is to be created.
      vm:
        $ref: "#/definitions/CustomImagePropertiesFromVm"
        description: The virtual machine from which the image is to be created.
    type: object
  CustomImagePropertiesCustom:
    description: Properties for creating a custom image from a VHD.
    properties:
      imageName:
        description: The image name.
        type: string
      osType:
        description: The OS type of the custom image (i.e. Windows, Linux)
        enum:
          - Windows
          - Linux
          - None
        type: string
        x-ms-enum:
          modelAsString: true
          name: CustomImageOsType
      sysPrep:
        description: Indicates whether sysprep has been run on the VHD.
        type: boolean
    required:
      - osType
    type: object
  CustomImagePropertiesCustomFragment:
    description: Properties for creating a custom image from a VHD.
    properties:
      imageName:
        description: The image name.
        type: string
      osType:
        description: The OS type of the custom image (i.e. Windows, Linux)
        enum:
          - Windows
          - Linux
          - None
        type: string
        x-ms-enum:
          modelAsString: true
          name: CustomImageOsType
      sysPrep:
        description: Indicates whether sysprep has been run on the VHD.
        type: boolean
    type: object
  CustomImagePropertiesFragment:
    description: Properties of a custom image.
    properties:
      author:
        description: The author of the custom image.
        type: string
      customImagePlan:
        $ref: "#/definitions/CustomImagePropertiesFromPlanFragment"
        description: Storage information about the plan related to this custom image
      dataDiskStorageInfo:
        description: Storage information about the data disks present in the custom image
        items:
          $ref: "#/definitions/DataDiskStorageTypeInfoFragment"
        type: array
      description:
        description: The description of the custom image.
        type: string
      isPlanAuthorized:
        description: Whether or not the custom images underlying offer/plan has been enabled for programmatic deployment
        type: boolean
      managedImageId:
        description: The Managed Image Id backing the custom image.
        type: string
      managedSnapshotId:
        description: The Managed Snapshot Id backing the custom image.
        type: string
      vhd:
        $ref: "#/definitions/CustomImagePropertiesCustomFragment"
        description: The VHD from which the image is to be created.
      vm:
        $ref: "#/definitions/CustomImagePropertiesFromVmFragment"
        description: The virtual machine from which the image is to be created.
    type: object
  CustomImagePropertiesFromPlan:
    description: Properties for plan on a custom image.
    properties:
      id:
        description: The id of the plan, equivalent to name of the plan
        type: string
      offer:
        description: The offer for the plan from the marketplace image the custom image is derived from
        type: string
      publisher:
        description: The publisher for the plan from the marketplace image the custom image is derived from
        type: string
    type: object
  CustomImagePropertiesFromPlanFragment:
    description: Properties for plan on a custom image.
    properties:
      id:
        description: The id of the plan, equivalent to name of the plan
        type: string
      offer:
        description: The offer for the plan from the marketplace image the custom image is derived from
        type: string
      publisher:
        description: The publisher for the plan from the marketplace image the custom image is derived from
        type: string
    type: object
  CustomImagePropertiesFromVm:
    description: Properties for creating a custom image from a virtual machine.
    properties:
      linuxOsInfo:
        $ref: "#/definitions/LinuxOsInfo"
        description: The Linux OS information of the VM.
      sourceVmId:
        description: The source vm identifier.
        type: string
      windowsOsInfo:
        $ref: "#/definitions/WindowsOsInfo"
        description: The Windows OS information of the VM.
    type: object
  CustomImagePropertiesFromVmFragment:
    description: Properties for creating a custom image from a virtual machine.
    properties:
      linuxOsInfo:
        $ref: "#/definitions/LinuxOsInfoFragment"
        description: The Linux OS information of the VM.
      sourceVmId:
        description: The source vm identifier.
        type: string
      windowsOsInfo:
        $ref: "#/definitions/WindowsOsInfoFragment"
        description: The Windows OS information of the VM.
    type: object
  DataDiskProperties:
    description: Request body for adding a new or existing data disk to a virtual machine.
    properties:
      attachNewDataDiskOptions:
        $ref: "#/definitions/AttachNewDataDiskOptions"
        description: Specifies options to attach a new disk to the virtual machine.
      existingLabDiskId:
        description: Specifies the existing lab disk id to attach to virtual machine.
        type: string
      hostCaching:
        description: Caching option for a data disk (i.e. None, ReadOnly, ReadWrite).
        enum:
          - None
          - ReadOnly
          - ReadWrite
        type: string
        x-ms-enum:
          modelAsString: true
          name: HostCachingOptions
    type: object
  DataDiskPropertiesFragment:
    description: Request body for adding a new or existing data disk to a virtual machine.
    properties:
      attachNewDataDiskOptions:
        $ref: "#/definitions/AttachNewDataDiskOptionsFragment"
        description: Specifies options to attach a new disk to the virtual machine.
      existingLabDiskId:
        description: Specifies the existing lab disk id to attach to virtual machine.
        type: string
      hostCaching:
        description: Caching option for a data disk (i.e. None, ReadOnly, ReadWrite).
        enum:
          - None
          - ReadOnly
          - ReadWrite
        type: string
        x-ms-enum:
          modelAsString: true
          name: HostCachingOptions
    type: object
  DataDiskStorageTypeInfo:
    description: Storage information about the data disks present in the custom image
    properties:
      lun:
        description: Disk Lun
        type: string
      storageType:
        description: Disk Storage Type
        enum:
          - Standard
          - Premium
          - StandardSSD
        type: string
        x-ms-enum:
          modelAsString: true
          name: StorageType
    type: object
  DataDiskStorageTypeInfoFragment:
    description: Storage information about the data disks present in the custom image
    properties:
      lun:
        description: Disk Lun
        type: string
      storageType:
        description: Disk Storage Type
        enum:
          - Standard
          - Premium
          - StandardSSD
        type: string
        x-ms-enum:
          modelAsString: true
          name: StorageType
    type: object
  DayDetails:
    description: Properties of a daily schedule.
    properties:
      time:
        description: The time of day the schedule will occur.
        type: string
    type: object
  DayDetailsFragment:
    description: Properties of a daily schedule.
    properties:
      time:
        description: The time of day the schedule will occur.
        type: string
    type: object
  DetachDataDiskProperties:
    description: Request body for detaching data disk from a virtual machine.
    properties:
      existingLabDiskId:
        description: Specifies the disk resource ID to detach from virtual machine.
        type: string
    type: object
  DetachDiskProperties:
    description: Properties of the disk to detach.
    properties:
      leasedByLabVmId:
        description: The resource ID of the Lab VM to which the disk is attached.
        type: string
    type: object
  Disk:
    allOf:
      - $ref: "#/definitions/Resource"
    description: A Disk.
    properties:
      properties:
        $ref: "#/definitions/DiskProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
    required:
      - properties
    type: object
  DiskFragment:
    allOf:
      - $ref: "#/definitions/UpdateResource"
    description: A Disk.
    properties:
      properties:
        $ref: "#/definitions/DiskPropertiesFragment"
        description: The properties of the resource.
        x-ms-client-flatten: true
    type: object
  DiskList:
    description: The response of a list operation.
    properties:
      nextLink:
        description: Link for next set of results.
        type: string
      value:
        description: Results of the list operation.
        items:
          $ref: "#/definitions/Disk"
        type: array
    type: object
  DiskProperties:
    description: Properties of a disk.
    properties:
      createdDate:
        description: The creation date of the disk.
        format: date-time
        readOnly: true
        type: string
      diskBlobName:
        description: When backed by a blob, the name of the VHD blob without extension.
        type: string
      diskSizeGiB:
        description: The size of the disk in GibiBytes.
        format: int32
        type: integer
      diskType:
        description: The storage type for the disk (i.e. Standard, Premium).
        enum:
          - Standard
          - Premium
          - StandardSSD
        type: string
        x-ms-enum:
          modelAsString: true
          name: StorageType
      diskUri:
        description: When backed by a blob, the URI of underlying blob.
        type: string
      hostCaching:
        description: The host caching policy of the disk (i.e. None, ReadOnly, ReadWrite).
        type: string
      leasedByLabVmId:
        description: The resource ID of the VM to which this disk is leased.
        type: string
      managedDiskId:
        description: When backed by managed disk, this is the ID of the compute disk resource.
        type: string
      provisioningState:
        description: The provisioning status of the resource.
        readOnly: true
        type: string
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        readOnly: true
        type: string
    type: object
  DiskPropertiesFragment:
    description: Properties of a disk.
    properties:
      diskBlobName:
        description: When backed by a blob, the name of the VHD blob without extension.
        type: string
      diskSizeGiB:
        description: The size of the disk in GibiBytes.
        format: int32
        type: integer
      diskType:
        description: The storage type for the disk (i.e. Standard, Premium).
        enum:
          - Standard
          - Premium
          - StandardSSD
        type: string
        x-ms-enum:
          modelAsString: true
          name: StorageType
      diskUri:
        description: When backed by a blob, the URI of underlying blob.
        type: string
      hostCaching:
        description: The host caching policy of the disk (i.e. None, ReadOnly, ReadWrite).
        type: string
      leasedByLabVmId:
        description: The resource ID of the VM to which this disk is leased.
        type: string
      managedDiskId:
        description: When backed by managed disk, this is the ID of the compute disk resource.
        type: string
    type: object
  DtlEnvironment:
    allOf:
      - $ref: "#/definitions/Resource"
    description: An environment, which is essentially an ARM template deployment.
    properties:
      properties:
        $ref: "#/definitions/EnvironmentProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
    required:
      - properties
    type: object
  DtlEnvironmentFragment:
    allOf:
      - $ref: "#/definitions/UpdateResource"
    description: An environment, which is essentially an ARM template deployment.
    properties:
      properties:
        $ref: "#/definitions/EnvironmentPropertiesFragment"
        description: The properties of the resource.
        x-ms-client-flatten: true
    type: object
  DtlEnvironmentList:
    description: The response of a list operation.
    properties:
      nextLink:
        description: Link for next set of results.
        type: string
      value:
        description: Results of the list operation.
        items:
          $ref: "#/definitions/DtlEnvironment"
        type: array
    type: object
  EnvironmentDeploymentProperties:
    description: Properties of an environment deployment.
    properties:
      armTemplateId:
        description: The Azure Resource Manager template's identifier.
        type: string
      parameters:
        description: The parameters of the Azure Resource Manager template.
        items:
          $ref: "#/definitions/ArmTemplateParameterProperties"
        type: array
    type: object
  EnvironmentDeploymentPropertiesFragment:
    description: Properties of an environment deployment.
    properties:
      armTemplateId:
        description: The Azure Resource Manager template's identifier.
        type: string
      parameters:
        description: The parameters of the Azure Resource Manager template.
        items:
          $ref: "#/definitions/ArmTemplateParameterPropertiesFragment"
        type: array
    type: object
  EnvironmentProperties:
    description: Properties of an environment.
    properties:
      armTemplateDisplayName:
        description: The display name of the Azure Resource Manager template that produced the environment.
        type: string
      createdByUser:
        description: The creator of the environment.
        readOnly: true
        type: string
      deploymentProperties:
        $ref: "#/definitions/EnvironmentDeploymentProperties"
        description: The deployment properties of the environment.
      provisioningState:
        description: The provisioning status of the resource.
        readOnly: true
        type: string
      resourceGroupId:
        description: The identifier of the resource group containing the environment's resources.
        readOnly: true
        type: string
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        readOnly: true
        type: string
    type: object
  EnvironmentPropertiesFragment:
    description: Properties of an environment.
    properties:
      armTemplateDisplayName:
        description: The display name of the Azure Resource Manager template that produced the environment.
        type: string
      deploymentProperties:
        $ref: "#/definitions/EnvironmentDeploymentPropertiesFragment"
        description: The deployment properties of the environment.
    type: object
  EvaluatePoliciesProperties:
    description: Properties for evaluating a policy set.
    properties:
      factData:
        description: The fact data.
        type: string
      factName:
        description: The fact name.
        type: string
      userObjectId:
        description: The user for which policies will be evaluated
        type: string
      valueOffset:
        description: The value offset.
        type: string
    type: object
  EvaluatePoliciesRequest:
    description: Request body for evaluating a policy set.
    properties:
      policies:
        description: Policies to evaluate.
        items:
          $ref: "#/definitions/EvaluatePoliciesProperties"
        type: array
    type: object
  EvaluatePoliciesResponse:
    description: Response body for evaluating a policy set.
    properties:
      results:
        description: Results of evaluating a policy set.
        items:
          $ref: "#/definitions/PolicySetResult"
        type: array
    type: object
  Event:
    description: An event to be notified for.
    properties:
      eventName:
        description: The event type for which this notification is enabled (i.e. AutoShutdown, Cost)
        enum:
          - AutoShutdown
          - Cost
        type: string
        x-ms-enum:
          modelAsString: true
          name: NotificationChannelEventType
    type: object
  EventFragment:
    description: An event to be notified for.
    properties:
      eventName:
        description: The event type for which this notification is enabled (i.e. AutoShutdown, Cost)
        enum:
          - AutoShutdown
          - Cost
        type: string
        x-ms-enum:
          modelAsString: true
          name: NotificationChannelEventType
    type: object
  ExportResourceUsageParameters:
    description: The parameters of the export operation.
    properties:
      blobStorageAbsoluteSasUri:
        description: The blob storage absolute sas uri with write permission to the container which the usage data needs to be uploaded to.
        type: string
      usageStartDate:
        description: The start time of the usage. If not provided, usage will be reported since the beginning of data collection.
        format: date-time
        type: string
    type: object
  ExternalSubnet:
    description: Subnet information as returned by the Microsoft.Network API.
    properties:
      id:
        description: Gets or sets the identifier.
        type: string
      name:
        description: Gets or sets the name.
        type: string
    type: object
  ExternalSubnetFragment:
    description: Subnet information as returned by the Microsoft.Network API.
    properties:
      id:
        description: Gets or sets the identifier.
        type: string
      name:
        description: Gets or sets the name.
        type: string
    type: object
  Formula:
    allOf:
      - $ref: "#/definitions/Resource"
    description: A formula for creating a VM, specifying an image base and other parameters
    properties:
      properties:
        $ref: "#/definitions/FormulaProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
    required:
      - properties
    type: object
  FormulaFragment:
    allOf:
      - $ref: "#/definitions/UpdateResource"
    description: A formula for creating a VM, specifying an image base and other parameters
    properties:
      properties:
        $ref: "#/definitions/FormulaPropertiesFragment"
        description: The properties of the resource.
        x-ms-client-flatten: true
    type: object
  FormulaList:
    description: The response of a list operation.
    properties:
      nextLink:
        description: Link for next set of results.
        type: string
      value:
        description: Results of the list operation.
        items:
          $ref: "#/definitions/Formula"
        type: array
    type: object
  FormulaProperties:
    description: Properties of a formula.
    properties:
      author:
        description: The author of the formula.
        type: string
      creationDate:
        description: The creation date of the formula.
        format: date-time
        readOnly: true
        type: string
      description:
        description: The description of the formula.
        type: string
      formulaContent:
        $ref: "#/definitions/LabVirtualMachineCreationParameter"
        description: The content of the formula.
      osType:
        description: The OS type of the formula.
        type: string
      provisioningState:
        description: The provisioning status of the resource.
        readOnly: true
        type: string
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        readOnly: true
        type: string
      vm:
        $ref: "#/definitions/FormulaPropertiesFromVm"
        description: Information about a VM from which a formula is to be created.
    type: object
  FormulaPropertiesFragment:
    description: Properties of a formula.
    properties:
      author:
        description: The author of the formula.
        type: string
      description:
        description: The description of the formula.
        type: string
      formulaContent:
        $ref: "#/definitions/LabVirtualMachineCreationParameterFragment"
        description: The content of the formula.
      osType:
        description: The OS type of the formula.
        type: string
      vm:
        $ref: "#/definitions/FormulaPropertiesFromVmFragment"
        description: Information about a VM from which a formula is to be created.
    type: object
  FormulaPropertiesFromVm:
    description: Information about a VM from which a formula is to be created.
    properties:
      labVmId:
        description: The identifier of the VM from which a formula is to be created.
        type: string
    type: object
  FormulaPropertiesFromVmFragment:
    description: Information about a VM from which a formula is to be created.
    properties:
      labVmId:
        description: The identifier of the VM from which a formula is to be created.
        type: string
    type: object
  GalleryImage:
    allOf:
      - $ref: "#/definitions/Resource"
    description: A gallery image.
    properties:
      properties:
        $ref: "#/definitions/GalleryImageProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
    required:
      - properties
    type: object
  GalleryImageList:
    description: The response of a list operation.
    properties:
      nextLink:
        description: Link for next set of results.
        type: string
      value:
        description: Results of the list operation.
        items:
          $ref: "#/definitions/GalleryImage"
        type: array
    type: object
  GalleryImageProperties:
    description: Properties of a gallery image.
    properties:
      author:
        description: The author of the gallery image.
        type: string
      createdDate:
        description: The creation date of the gallery image.
        format: date-time
        readOnly: true
        type: string
      description:
        description: The description of the gallery image.
        type: string
      enabled:
        description: Indicates whether this gallery image is enabled.
        type: boolean
      icon:
        description: The icon of the gallery image.
        type: string
      imageReference:
        $ref: "#/definitions/GalleryImageReference"
        description: The image reference of the gallery image.
      isPlanAuthorized:
        description: Indicates if the plan has been authorized for programmatic deployment.
        type: boolean
      planId:
        description: The third party plan that applies to this image
        type: string
    type: object
  GalleryImageReference:
    description: The reference information for an Azure Marketplace image.
    properties:
      offer:
        description: The offer of the gallery image.
        type: string
      osType:
        description: The OS type of the gallery image.
        type: string
      publisher:
        description: The publisher of the gallery image.
        type: string
      sku:
        description: The SKU of the gallery image.
        type: string
      version:
        description: The version of the gallery image.
        type: string
    type: object
  GalleryImageReferenceFragment:
    description: The reference information for an Azure Marketplace image.
    properties:
      offer:
        description: The offer of the gallery image.
        type: string
      osType:
        description: The OS type of the gallery image.
        type: string
      publisher:
        description: The publisher of the gallery image.
        type: string
      sku:
        description: The SKU of the gallery image.
        type: string
      version:
        description: The version of the gallery image.
        type: string
    type: object
  GenerateArmTemplateRequest:
    description: Parameters for generating an ARM template for deploying artifacts.
    properties:
      fileUploadOptions:
        description: Options for uploading the files for the artifact. UploadFilesAndGenerateSasTokens is the default value.
        enum:
          - UploadFilesAndGenerateSasTokens
          - None
        type: string
        x-ms-enum:
          modelAsString: true
          name: FileUploadOptions
      location:
        description: The location of the virtual machine.
        type: string
      parameters:
        description: The parameters of the ARM template.
        items:
          $ref: "#/definitions/ParameterInfo"
        type: array
      virtualMachineName:
        description: The resource name of the virtual machine.
        type: string
    type: object
  GenerateUploadUriParameter:
    description: Properties for generating an upload URI.
    properties:
      blobName:
        description: The blob name of the upload URI.
        type: string
    type: object
  GenerateUploadUriResponse:
    description: Response body for generating an upload URI.
    properties:
      uploadUri:
        description: The upload URI for the VHD.
        type: string
    type: object
  HourDetails:
    description: Properties of an hourly schedule.
    properties:
      minute:
        description: Minutes of the hour the schedule will run.
        format: int32
        type: integer
    type: object
  HourDetailsFragment:
    description: Properties of an hourly schedule.
    properties:
      minute:
        description: Minutes of the hour the schedule will run.
        format: int32
        type: integer
    type: object
  IdentityProperties:
    description: Properties of a managed identity
    properties:
      clientSecretUrl:
        description: The client secret URL of the identity.
        type: string
      principalId:
        description: The principal id of resource identity.
        type: string
      tenantId:
        description: The tenant identifier of resource.
        type: string
      type:
        description: Managed identity.
        type: string
    type: object
  ImportLabVirtualMachineRequest:
    description: This represents the payload required to import a virtual machine from a different lab into the current one
    properties:
      destinationVirtualMachineName:
        description: The name of the virtual machine in the destination lab
        type: string
      sourceVirtualMachineResourceId:
        description: The full resource ID of the virtual machine to be imported.
        type: string
    type: object
  InboundNatRule:
    description: A rule for NAT - exposing a VM's port (backendPort) on the public IP address using a load balancer.
    properties:
      backendPort:
        description: The port to which the external traffic will be redirected.
        format: int32
        type: integer
      frontendPort:
        description: The external endpoint port of the inbound connection. Possible values range between 1 and 65535, inclusive. If unspecified, a value will be allocated automatically.
        format: int32
        type: integer
      transportProtocol:
        description: The transport protocol for the endpoint.
        enum:
          - Tcp
          - Udp
        type: string
        x-ms-enum:
          modelAsString: true
          name: TransportProtocol
    type: object
  InboundNatRuleFragment:
    description: A rule for NAT - exposing a VM's port (backendPort) on the public IP address using a load balancer.
    properties:
      backendPort:
        description: The port to which the external traffic will be redirected.
        format: int32
        type: integer
      frontendPort:
        description: The external endpoint port of the inbound connection. Possible values range between 1 and 65535, inclusive. If unspecified, a value will be allocated automatically.
        format: int32
        type: integer
      transportProtocol:
        description: The transport protocol for the endpoint.
        enum:
          - Tcp
          - Udp
        type: string
        x-ms-enum:
          modelAsString: true
          name: TransportProtocol
    type: object
  Lab:
    allOf:
      - $ref: "#/definitions/Resource"
    description: A lab.
    properties:
      properties:
        $ref: "#/definitions/LabProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
    type: object
  LabAnnouncementProperties:
    description: Properties of a lab's announcement banner
    properties:
      enabled:
        description: Is the lab announcement active/enabled at this time?
        enum:
          - Enabled
          - Disabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: EnableStatus
      expirationDate:
        description: The time at which the announcement expires (null for never)
        format: date-time
        type: string
      expired:
        description: Has this announcement expired?
        type: boolean
      markdown:
        description: The markdown text (if any) that this lab displays in the UI. If left empty/null, nothing will be shown.
        type: string
      provisioningState:
        description: The provisioning status of the resource.
        readOnly: true
        type: string
      title:
        description: The plain text title for the lab announcement
        type: string
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        readOnly: true
        type: string
    type: object
  LabAnnouncementPropertiesFragment:
    description: Properties of a lab's announcement banner
    properties:
      enabled:
        description: Is the lab announcement active/enabled at this time?
        enum:
          - Enabled
          - Disabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: EnableStatus
      expirationDate:
        description: The time at which the announcement expires (null for never)
        format: date-time
        type: string
      expired:
        description: Has this announcement expired?
        type: boolean
      markdown:
        description: The markdown text (if any) that this lab displays in the UI. If left empty/null, nothing will be shown.
        type: string
      title:
        description: The plain text title for the lab announcement
        type: string
    type: object
  LabCost:
    allOf:
      - $ref: "#/definitions/Resource"
    description: A cost item.
    properties:
      properties:
        $ref: "#/definitions/LabCostProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
    required:
      - properties
    type: object
  LabCostDetailsProperties:
    description: The properties of a lab cost item.
    properties:
      cost:
        description: The cost component of the cost item.
        format: double
        type: number
      costType:
        description: The type of the cost.
        enum:
          - Unavailable
          - Reported
          - Projected
        type: string
        x-ms-enum:
          modelAsString: true
          name: CostType
      date:
        description: The date of the cost item.
        format: date-time
        type: string
    type: object
  LabCostProperties:
    description: Properties of a cost item.
    properties:
      createdDate:
        description: The creation date of the cost.
        format: date-time
        type: string
      currencyCode:
        description: The currency code of the cost.
        type: string
      endDateTime:
        description: The end time of the cost data.
        format: date-time
        type: string
      labCostDetails:
        description: The lab cost details component of the cost data.
        items:
          $ref: "#/definitions/LabCostDetailsProperties"
        readOnly: true
        type: array
      labCostSummary:
        $ref: "#/definitions/LabCostSummaryProperties"
        description: The lab cost summary component of the cost data.
        readOnly: true
      provisioningState:
        description: The provisioning status of the resource.
        readOnly: true
        type: string
      resourceCosts:
        description: The resource cost component of the cost data.
        items:
          $ref: "#/definitions/LabResourceCostProperties"
        readOnly: true
        type: array
      startDateTime:
        description: The start time of the cost data.
        format: date-time
        type: string
      targetCost:
        $ref: "#/definitions/TargetCostProperties"
        description: The target cost properties
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        readOnly: true
        type: string
    type: object
  LabCostSummaryProperties:
    description: The properties of the cost summary.
    properties:
      estimatedLabCost:
        description: The cost component of the cost item.
        format: double
        type: number
    type: object
  LabFragment:
    allOf:
      - $ref: "#/definitions/UpdateResource"
    description: A lab.
    properties:
      properties:
        $ref: "#/definitions/LabPropertiesFragment"
        description: The properties of the resource.
        x-ms-client-flatten: true
    type: object
  LabList:
    description: The response of a list operation.
    properties:
      nextLink:
        description: Link for next set of results.
        type: string
      value:
        description: Results of the list operation.
        items:
          $ref: "#/definitions/Lab"
        type: array
    type: object
  LabProperties:
    description: Properties of a lab.
    properties:
      announcement:
        $ref: "#/definitions/LabAnnouncementProperties"
        description: The properties of any lab announcement associated with this lab
      artifactsStorageAccount:
        description: The lab's artifact storage account.
        readOnly: true
        type: string
      createdDate:
        description: The creation date of the lab.
        format: date-time
        readOnly: true
        type: string
      defaultPremiumStorageAccount:
        description: The lab's default premium storage account.
        readOnly: true
        type: string
      defaultStorageAccount:
        description: The lab's default storage account.
        readOnly: true
        type: string
      environmentPermission:
        description: The access rights to be granted to the user when provisioning an environment
        enum:
          - Reader
          - Contributor
        type: string
        x-ms-enum:
          modelAsString: true
          name: EnvironmentPermission
      extendedProperties:
        additionalProperties:
          type: string
        description: Extended properties of the lab used for experimental features
        type: object
      labStorageType:
        description: Type of storage used by the lab. It can be either Premium or Standard. Default is Premium.
        enum:
          - Standard
          - Premium
          - StandardSSD
        type: string
        x-ms-enum:
          modelAsString: true
          name: StorageType
      loadBalancerId:
        description: The load balancer used to for lab VMs that use shared IP address.
        readOnly: true
        type: string
      mandatoryArtifactsResourceIdsLinux:
        description: The ordered list of artifact resource IDs that should be applied on all Linux VM creations by default, prior to the artifacts specified by the user.
        items:
          type: string
        type: array
      mandatoryArtifactsResourceIdsWindows:
        description: The ordered list of artifact resource IDs that should be applied on all Windows VM creations by default, prior to the artifacts specified by the user.
        items:
          type: string
        type: array
      networkSecurityGroupId:
        description: The Network Security Group attached to the lab VMs Network interfaces to restrict open ports.
        readOnly: true
        type: string
      premiumDataDiskStorageAccount:
        description: The lab's premium data disk storage account.
        readOnly: true
        type: string
      premiumDataDisks:
        description: "The setting to enable usage of premium data disks.\r

          When its value is 'Enabled', creation of standard or premium data disks is allowed.\r

          When its value is 'Disabled', only creation of standard data disks is allowed."
        enum:
          - Disabled
          - Enabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: PremiumDataDisk
      provisioningState:
        description: The provisioning status of the resource.
        readOnly: true
        type: string
      publicIpId:
        description: The public IP address for the lab's load balancer.
        readOnly: true
        type: string
      support:
        $ref: "#/definitions/LabSupportProperties"
        description: The properties of any lab support message associated with this lab
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        readOnly: true
        type: string
      vaultName:
        description: The lab's Key vault.
        readOnly: true
        type: string
      vmCreationResourceGroup:
        description: The resource group in which all new lab virtual machines will be created. To let DevTest Labs manage resource group creation, set this value to null.
        readOnly: true
        type: string
    type: object
  LabPropertiesFragment:
    description: Properties of a lab.
    properties:
      announcement:
        $ref: "#/definitions/LabAnnouncementPropertiesFragment"
        description: The properties of any lab announcement associated with this lab
      environmentPermission:
        description: The access rights to be granted to the user when provisioning an environment
        enum:
          - Reader
          - Contributor
        type: string
        x-ms-enum:
          modelAsString: true
          name: EnvironmentPermission
      extendedProperties:
        additionalProperties:
          type: string
        description: Extended properties of the lab used for experimental features
        type: object
      labStorageType:
        description: Type of storage used by the lab. It can be either Premium or Standard. Default is Premium.
        enum:
          - Standard
          - Premium
          - StandardSSD
        type: string
        x-ms-enum:
          modelAsString: true
          name: StorageType
      mandatoryArtifactsResourceIdsLinux:
        description: The ordered list of artifact resource IDs that should be applied on all Linux VM creations by default, prior to the artifacts specified by the user.
        items:
          type: string
        type: array
      mandatoryArtifactsResourceIdsWindows:
        description: The ordered list of artifact resource IDs that should be applied on all Windows VM creations by default, prior to the artifacts specified by the user.
        items:
          type: string
        type: array
      premiumDataDisks:
        description: "The setting to enable usage of premium data disks.\r

          When its value is 'Enabled', creation of standard or premium data disks is allowed.\r

          When its value is 'Disabled', only creation of standard data disks is allowed."
        enum:
          - Disabled
          - Enabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: PremiumDataDisk
      support:
        $ref: "#/definitions/LabSupportPropertiesFragment"
        description: The properties of any lab support message associated with this lab
    type: object
  LabResourceCostProperties:
    description: The properties of a resource cost item.
    properties:
      externalResourceId:
        description: The ID of the external resource
        type: string
      resourceCost:
        description: The cost component of the resource cost item.
        format: double
        type: number
      resourceId:
        description: The ID of the resource
        type: string
      resourceOwner:
        description: The owner of the resource (ex. janedoe@microsoft.com)
        type: string
      resourcePricingTier:
        description: The category of the resource (ex. Premium_LRS, Standard_DS1)
        type: string
      resourceStatus:
        description: The status of the resource (ex. Active)
        type: string
      resourceType:
        description: The logical resource type (ex. virtualmachine, storageaccount)
        type: string
      resourceUId:
        description: The unique identifier of the resource.
        type: string
      resourcename:
        description: The name of the resource.
        type: string
    type: object
  LabSupportProperties:
    description: Properties of a lab's support banner
    properties:
      enabled:
        description: Is the lab support banner active/enabled at this time?
        enum:
          - Enabled
          - Disabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: EnableStatus
      markdown:
        description: The markdown text (if any) that this lab displays in the UI. If left empty/null, nothing will be shown.
        type: string
    type: object
  LabSupportPropertiesFragment:
    description: Properties of a lab's support banner
    properties:
      enabled:
        description: Is the lab support banner active/enabled at this time?
        enum:
          - Enabled
          - Disabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: EnableStatus
      markdown:
        description: The markdown text (if any) that this lab displays in the UI. If left empty/null, nothing will be shown.
        type: string
    type: object
  LabVhd:
    description: Properties of a VHD in the lab.
    properties:
      id:
        description: The URI to the VHD.
        type: string
    type: object
  LabVhdList:
    description: The response of a list operation.
    properties:
      nextLink:
        description: Link for next set of results.
        type: string
      value:
        description: Results of the list operation.
        items:
          $ref: "#/definitions/LabVhd"
        type: array
    type: object
  LabVirtualMachine:
    allOf:
      - $ref: "#/definitions/Resource"
    description: A virtual machine.
    properties:
      properties:
        $ref: "#/definitions/LabVirtualMachineProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
    required:
      - properties
    type: object
  LabVirtualMachineCreationParameter:
    description: Properties for creating a virtual machine.
    properties:
      location:
        description: The location of the new virtual machine or environment
        type: string
      name:
        description: The name of the virtual machine or environment
        type: string
      properties:
        $ref: "#/definitions/LabVirtualMachineCreationParameterProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
      tags:
        additionalProperties:
          type: string
        description: The tags of the resource.
        type: object
    type: object
  LabVirtualMachineCreationParameterFragment:
    description: Properties for creating a virtual machine.
    properties:
      location:
        description: The location of the new virtual machine or environment
        type: string
      name:
        description: The name of the virtual machine or environment
        type: string
      properties:
        $ref: "#/definitions/LabVirtualMachineCreationParameterPropertiesFragment"
        description: The properties of the resource.
        x-ms-client-flatten: true
      tags:
        additionalProperties:
          type: string
        description: The tags of the resource.
        type: object
    type: object
  LabVirtualMachineCreationParameterProperties:
    description: Properties for virtual machine creation.
    properties:
      allowClaim:
        description: Indicates whether another user can take ownership of the virtual machine
        type: boolean
      artifactDeploymentStatus:
        $ref: "#/definitions/ArtifactDeploymentStatusProperties"
        description: The artifact deployment status for the virtual machine.
      artifacts:
        description: The artifacts to be installed on the virtual machine.
        items:
          $ref: "#/definitions/ArtifactInstallProperties"
        type: array
      bulkCreationParameters:
        $ref: "#/definitions/BulkCreationParameters"
        description: The number of virtual machine instances to create.
      computeId:
        description: The resource identifier (Microsoft.Compute) of the virtual machine.
        type: string
      createdByUser:
        description: The email address of creator of the virtual machine.
        type: string
      createdByUserId:
        description: The object identifier of the creator of the virtual machine.
        type: string
      createdDate:
        description: The creation date of the virtual machine.
        format: date-time
        type: string
      customImageId:
        description: The custom image identifier of the virtual machine.
        type: string
      dataDiskParameters:
        description: New or existing data disks to attach to the virtual machine after creation
        items:
          $ref: "#/definitions/DataDiskProperties"
        type: array
      disallowPublicIpAddress:
        description: Indicates whether the virtual machine is to be created without a public IP address.
        type: boolean
      environmentId:
        description: The resource ID of the environment that contains this virtual machine, if any.
        type: string
      expirationDate:
        description: The expiration date for VM.
        format: date-time
        type: string
      fqdn:
        description: The fully-qualified domain name of the virtual machine.
        type: string
      galleryImageReference:
        $ref: "#/definitions/GalleryImageReference"
        description: The Microsoft Azure Marketplace image reference of the virtual machine.
      isAuthenticationWithSshKey:
        description: Indicates whether this virtual machine uses an SSH key for authentication.
        type: boolean
      labSubnetName:
        description: The lab subnet name of the virtual machine.
        type: string
      labVirtualNetworkId:
        description: The lab virtual network identifier of the virtual machine.
        type: string
      lastKnownPowerState:
        description: Last known compute power state captured in DTL
        type: string
      networkInterface:
        $ref: "#/definitions/NetworkInterfaceProperties"
        description: The network interface properties.
      notes:
        description: The notes of the virtual machine.
        type: string
      osType:
        description: The OS type of the virtual machine.
        type: string
      ownerObjectId:
        description: The object identifier of the owner of the virtual machine.
        type: string
      ownerUserPrincipalName:
        description: The user principal name of the virtual machine owner.
        type: string
      password:
        description: The password of the virtual machine administrator.
        type: string
      planId:
        description: The id of the plan associated with the virtual machine image
        type: string
      scheduleParameters:
        description: Virtual Machine schedules to be created
        items:
          $ref: "#/definitions/ScheduleCreationParameter"
        type: array
      size:
        description: The size of the virtual machine.
        type: string
      sshKey:
        description: The SSH key of the virtual machine administrator.
        type: string
      storageType:
        description: Storage type to use for virtual machine (i.e. Standard, Premium).
        type: string
      userName:
        description: The user name of the virtual machine.
        type: string
      virtualMachineCreationSource:
        description: Tells source of creation of lab virtual machine. Output property only.
        enum:
          - FromCustomImage
          - FromGalleryImage
          - FromSharedGalleryImage
        type: string
        x-ms-enum:
          modelAsString: true
          name: VirtualMachineCreationSource
    type: object
  LabVirtualMachineCreationParameterPropertiesFragment:
    description: Properties for virtual machine creation.
    properties:
      allowClaim:
        description: Indicates whether another user can take ownership of the virtual machine
        type: boolean
      artifactDeploymentStatus:
        $ref: "#/definitions/ArtifactDeploymentStatusPropertiesFragment"
        description: The artifact deployment status for the virtual machine.
      artifacts:
        description: The artifacts to be installed on the virtual machine.
        items:
          $ref: "#/definitions/ArtifactInstallPropertiesFragment"
        type: array
      bulkCreationParameters:
        $ref: "#/definitions/BulkCreationParametersFragment"
        description: The number of virtual machine instances to create.
      computeId:
        description: The resource identifier (Microsoft.Compute) of the virtual machine.
        type: string
      createdByUser:
        description: The email address of creator of the virtual machine.
        type: string
      createdByUserId:
        description: The object identifier of the creator of the virtual machine.
        type: string
      createdDate:
        description: The creation date of the virtual machine.
        format: date-time
        type: string
      customImageId:
        description: The custom image identifier of the virtual machine.
        type: string
      dataDiskParameters:
        description: New or existing data disks to attach to the virtual machine after creation
        items:
          $ref: "#/definitions/DataDiskPropertiesFragment"
        type: array
      disallowPublicIpAddress:
        description: Indicates whether the virtual machine is to be created without a public IP address.
        type: boolean
      environmentId:
        description: The resource ID of the environment that contains this virtual machine, if any.
        type: string
      expirationDate:
        description: The expiration date for VM.
        format: date-time
        type: string
      fqdn:
        description: The fully-qualified domain name of the virtual machine.
        type: string
      galleryImageReference:
        $ref: "#/definitions/GalleryImageReferenceFragment"
        description: The Microsoft Azure Marketplace image reference of the virtual machine.
      isAuthenticationWithSshKey:
        description: Indicates whether this virtual machine uses an SSH key for authentication.
        type: boolean
      labSubnetName:
        description: The lab subnet name of the virtual machine.
        type: string
      labVirtualNetworkId:
        description: The lab virtual network identifier of the virtual machine.
        type: string
      lastKnownPowerState:
        description: Last known compute power state captured in DTL
        type: string
      networkInterface:
        $ref: "#/definitions/NetworkInterfacePropertiesFragment"
        description: The network interface properties.
      notes:
        description: The notes of the virtual machine.
        type: string
      osType:
        description: The OS type of the virtual machine.
        type: string
      ownerObjectId:
        description: The object identifier of the owner of the virtual machine.
        type: string
      ownerUserPrincipalName:
        description: The user principal name of the virtual machine owner.
        type: string
      password:
        description: The password of the virtual machine administrator.
        type: string
      planId:
        description: The id of the plan associated with the virtual machine image
        type: string
      scheduleParameters:
        description: Virtual Machine schedules to be created
        items:
          $ref: "#/definitions/ScheduleCreationParameterFragment"
        type: array
      size:
        description: The size of the virtual machine.
        type: string
      sshKey:
        description: The SSH key of the virtual machine administrator.
        type: string
      storageType:
        description: Storage type to use for virtual machine (i.e. Standard, Premium).
        type: string
      userName:
        description: The user name of the virtual machine.
        type: string
      virtualMachineCreationSource:
        description: Tells source of creation of lab virtual machine. Output property only.
        enum:
          - FromCustomImage
          - FromGalleryImage
          - FromSharedGalleryImage
        type: string
        x-ms-enum:
          modelAsString: true
          name: VirtualMachineCreationSource
    type: object
  LabVirtualMachineFragment:
    allOf:
      - $ref: "#/definitions/UpdateResource"
    description: A virtual machine.
    properties:
      properties:
        $ref: "#/definitions/LabVirtualMachinePropertiesFragment"
        description: The properties of the resource.
        x-ms-client-flatten: true
    type: object
  LabVirtualMachineList:
    description: The response of a list operation.
    properties:
      nextLink:
        description: Link for next set of results.
        type: string
      value:
        description: Results of the list operation.
        items:
          $ref: "#/definitions/LabVirtualMachine"
        type: array
    type: object
  LabVirtualMachineProperties:
    description: Properties of a virtual machine.
    properties:
      allowClaim:
        description: Indicates whether another user can take ownership of the virtual machine
        type: boolean
      applicableSchedule:
        $ref: "#/definitions/ApplicableSchedule"
        description: The applicable schedule for the virtual machine.
        readOnly: true
      artifactDeploymentStatus:
        $ref: "#/definitions/ArtifactDeploymentStatusProperties"
        description: The artifact deployment status for the virtual machine.
      artifacts:
        description: The artifacts to be installed on the virtual machine.
        items:
          $ref: "#/definitions/ArtifactInstallProperties"
        type: array
      computeId:
        description: The resource identifier (Microsoft.Compute) of the virtual machine.
        type: string
      computeVm:
        $ref: "#/definitions/ComputeVmProperties"
        description: The compute virtual machine properties.
        readOnly: true
      createdByUser:
        description: The email address of creator of the virtual machine.
        type: string
      createdByUserId:
        description: The object identifier of the creator of the virtual machine.
        type: string
      createdDate:
        description: The creation date of the virtual machine.
        format: date-time
        type: string
      customImageId:
        description: The custom image identifier of the virtual machine.
        type: string
      dataDiskParameters:
        description: New or existing data disks to attach to the virtual machine after creation
        items:
          $ref: "#/definitions/DataDiskProperties"
        type: array
      disallowPublicIpAddress:
        description: Indicates whether the virtual machine is to be created without a public IP address.
        type: boolean
      environmentId:
        description: The resource ID of the environment that contains this virtual machine, if any.
        type: string
      expirationDate:
        description: The expiration date for VM.
        format: date-time
        type: string
      fqdn:
        description: The fully-qualified domain name of the virtual machine.
        type: string
      galleryImageReference:
        $ref: "#/definitions/GalleryImageReference"
        description: The Microsoft Azure Marketplace image reference of the virtual machine.
      isAuthenticationWithSshKey:
        description: Indicates whether this virtual machine uses an SSH key for authentication.
        type: boolean
      labSubnetName:
        description: The lab subnet name of the virtual machine.
        type: string
      labVirtualNetworkId:
        description: The lab virtual network identifier of the virtual machine.
        type: string
      lastKnownPowerState:
        description: Last known compute power state captured in DTL
        type: string
      networkInterface:
        $ref: "#/definitions/NetworkInterfaceProperties"
        description: The network interface properties.
      notes:
        description: The notes of the virtual machine.
        type: string
      osType:
        description: The OS type of the virtual machine.
        type: string
      ownerObjectId:
        description: The object identifier of the owner of the virtual machine.
        type: string
      ownerUserPrincipalName:
        description: The user principal name of the virtual machine owner.
        type: string
      password:
        description: The password of the virtual machine administrator.
        type: string
      planId:
        description: The id of the plan associated with the virtual machine image
        type: string
      provisioningState:
        description: The provisioning status of the resource.
        readOnly: true
        type: string
      scheduleParameters:
        description: Virtual Machine schedules to be created
        items:
          $ref: "#/definitions/ScheduleCreationParameter"
        type: array
      size:
        description: The size of the virtual machine.
        type: string
      sshKey:
        description: The SSH key of the virtual machine administrator.
        type: string
      storageType:
        description: Storage type to use for virtual machine (i.e. Standard, Premium).
        type: string
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        readOnly: true
        type: string
      userName:
        description: The user name of the virtual machine.
        type: string
      virtualMachineCreationSource:
        description: Tells source of creation of lab virtual machine. Output property only.
        enum:
          - FromCustomImage
          - FromGalleryImage
          - FromSharedGalleryImage
        type: string
        x-ms-enum:
          modelAsString: true
          name: VirtualMachineCreationSource
    type: object
  LabVirtualMachinePropertiesFragment:
    description: Properties of a virtual machine.
    properties:
      allowClaim:
        description: Indicates whether another user can take ownership of the virtual machine
        type: boolean
      artifactDeploymentStatus:
        $ref: "#/definitions/ArtifactDeploymentStatusPropertiesFragment"
        description: The artifact deployment status for the virtual machine.
      artifacts:
        description: The artifacts to be installed on the virtual machine.
        items:
          $ref: "#/definitions/ArtifactInstallPropertiesFragment"
        type: array
      computeId:
        description: The resource identifier (Microsoft.Compute) of the virtual machine.
        type: string
      createdByUser:
        description: The email address of creator of the virtual machine.
        type: string
      createdByUserId:
        description: The object identifier of the creator of the virtual machine.
        type: string
      createdDate:
        description: The creation date of the virtual machine.
        format: date-time
        type: string
      customImageId:
        description: The custom image identifier of the virtual machine.
        type: string
      dataDiskParameters:
        description: New or existing data disks to attach to the virtual machine after creation
        items:
          $ref: "#/definitions/DataDiskPropertiesFragment"
        type: array
      disallowPublicIpAddress:
        description: Indicates whether the virtual machine is to be created without a public IP address.
        type: boolean
      environmentId:
        description: The resource ID of the environment that contains this virtual machine, if any.
        type: string
      expirationDate:
        description: The expiration date for VM.
        format: date-time
        type: string
      fqdn:
        description: The fully-qualified domain name of the virtual machine.
        type: string
      galleryImageReference:
        $ref: "#/definitions/GalleryImageReferenceFragment"
        description: The Microsoft Azure Marketplace image reference of the virtual machine.
      isAuthenticationWithSshKey:
        description: Indicates whether this virtual machine uses an SSH key for authentication.
        type: boolean
      labSubnetName:
        description: The lab subnet name of the virtual machine.
        type: string
      labVirtualNetworkId:
        description: The lab virtual network identifier of the virtual machine.
        type: string
      lastKnownPowerState:
        description: Last known compute power state captured in DTL
        type: string
      networkInterface:
        $ref: "#/definitions/NetworkInterfacePropertiesFragment"
        description: The network interface properties.
      notes:
        description: The notes of the virtual machine.
        type: string
      osType:
        description: The OS type of the virtual machine.
        type: string
      ownerObjectId:
        description: The object identifier of the owner of the virtual machine.
        type: string
      ownerUserPrincipalName:
        description: The user principal name of the virtual machine owner.
        type: string
      password:
        description: The password of the virtual machine administrator.
        type: string
      planId:
        description: The id of the plan associated with the virtual machine image
        type: string
      scheduleParameters:
        description: Virtual Machine schedules to be created
        items:
          $ref: "#/definitions/ScheduleCreationParameterFragment"
        type: array
      size:
        description: The size of the virtual machine.
        type: string
      sshKey:
        description: The SSH key of the virtual machine administrator.
        type: string
      storageType:
        description: Storage type to use for virtual machine (i.e. Standard, Premium).
        type: string
      userName:
        description: The user name of the virtual machine.
        type: string
      virtualMachineCreationSource:
        description: Tells source of creation of lab virtual machine. Output property only.
        enum:
          - FromCustomImage
          - FromGalleryImage
          - FromSharedGalleryImage
        type: string
        x-ms-enum:
          modelAsString: true
          name: VirtualMachineCreationSource
    type: object
  LinuxOsInfo:
    description: Information about a Linux OS.
    properties:
      linuxOsState:
        description: The state of the Linux OS (i.e. NonDeprovisioned, DeprovisionRequested, DeprovisionApplied).
        enum:
          - NonDeprovisioned
          - DeprovisionRequested
          - DeprovisionApplied
        type: string
        x-ms-enum:
          modelAsString: true
          name: LinuxOsState
    type: object
  LinuxOsInfoFragment:
    description: Information about a Linux OS.
    properties:
      linuxOsState:
        description: The state of the Linux OS (i.e. NonDeprovisioned, DeprovisionRequested, DeprovisionApplied).
        enum:
          - NonDeprovisioned
          - DeprovisionRequested
          - DeprovisionApplied
        type: string
        x-ms-enum:
          modelAsString: true
          name: LinuxOsState
    type: object
  NetworkInterfaceProperties:
    description: Properties of a network interface.
    properties:
      dnsName:
        description: The DNS name.
        type: string
      privateIpAddress:
        description: The private IP address.
        type: string
      publicIpAddress:
        description: The public IP address.
        type: string
      publicIpAddressId:
        description: The resource ID of the public IP address.
        type: string
      rdpAuthority:
        description: The RdpAuthority property is a server DNS host name or IP address followed by the service port number for RDP (Remote Desktop Protocol).
        type: string
      sharedPublicIpAddressConfiguration:
        $ref: "#/definitions/SharedPublicIpAddressConfiguration"
        description: The configuration for sharing a public IP address across multiple virtual machines.
      sshAuthority:
        description: The SshAuthority property is a server DNS host name or IP address followed by the service port number for SSH.
        type: string
      subnetId:
        description: The resource ID of the sub net.
        type: string
      virtualNetworkId:
        description: The resource ID of the virtual network.
        type: string
    type: object
  NetworkInterfacePropertiesFragment:
    description: Properties of a network interface.
    properties:
      dnsName:
        description: The DNS name.
        type: string
      privateIpAddress:
        description: The private IP address.
        type: string
      publicIpAddress:
        description: The public IP address.
        type: string
      publicIpAddressId:
        description: The resource ID of the public IP address.
        type: string
      rdpAuthority:
        description: The RdpAuthority property is a server DNS host name or IP address followed by the service port number for RDP (Remote Desktop Protocol).
        type: string
      sharedPublicIpAddressConfiguration:
        $ref: "#/definitions/SharedPublicIpAddressConfigurationFragment"
        description: The configuration for sharing a public IP address across multiple virtual machines.
      sshAuthority:
        description: The SshAuthority property is a server DNS host name or IP address followed by the service port number for SSH.
        type: string
      subnetId:
        description: The resource ID of the sub net.
        type: string
      virtualNetworkId:
        description: The resource ID of the virtual network.
        type: string
    type: object
  NotificationChannel:
    allOf:
      - $ref: "#/definitions/Resource"
    description: A notification.
    properties:
      properties:
        $ref: "#/definitions/NotificationChannelProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
    required:
      - properties
    type: object
  NotificationChannelFragment:
    allOf:
      - $ref: "#/definitions/UpdateResource"
    description: A notification.
    properties:
      properties:
        $ref: "#/definitions/NotificationChannelPropertiesFragment"
        description: The properties of the resource.
        x-ms-client-flatten: true
    type: object
  NotificationChannelList:
    description: The response of a list operation.
    properties:
      nextLink:
        description: Link for next set of results.
        type: string
      value:
        description: Results of the list operation.
        items:
          $ref: "#/definitions/NotificationChannel"
        type: array
    type: object
  NotificationChannelProperties:
    description: Properties of a schedule.
    properties:
      createdDate:
        description: The creation date of the notification channel.
        format: date-time
        readOnly: true
        type: string
      description:
        description: Description of notification.
        type: string
      emailRecipient:
        description: The email recipient to send notifications to (can be a list of semi-colon separated email addresses).
        type: string
      events:
        description: The list of event for which this notification is enabled.
        items:
          $ref: "#/definitions/Event"
        type: array
      notificationLocale:
        description: The locale to use when sending a notification (fallback for unsupported languages is EN).
        type: string
      provisioningState:
        description: The provisioning status of the resource.
        readOnly: true
        type: string
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        readOnly: true
        type: string
      webHookUrl:
        description: The webhook URL to send notifications to.
        type: string
    type: object
  NotificationChannelPropertiesFragment:
    description: Properties of a schedule.
    properties:
      description:
        description: Description of notification.
        type: string
      emailRecipient:
        description: The email recipient to send notifications to (can be a list of semi-colon separated email addresses).
        type: string
      events:
        description: The list of event for which this notification is enabled.
        items:
          $ref: "#/definitions/EventFragment"
        type: array
      notificationLocale:
        description: The locale to use when sending a notification (fallback for unsupported languages is EN).
        type: string
      webHookUrl:
        description: The webhook URL to send notifications to.
        type: string
    type: object
  NotificationSettings:
    description: Notification settings for a schedule.
    properties:
      emailRecipient:
        description: The email recipient to send notifications to (can be a list of semi-colon separated email addresses).
        type: string
      notificationLocale:
        description: The locale to use when sending a notification (fallback for unsupported languages is EN).
        type: string
      status:
        description: If notifications are enabled for this schedule (i.e. Enabled, Disabled).
        enum:
          - Enabled
          - Disabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: EnableStatus
      timeInMinutes:
        description: Time in minutes before event at which notification will be sent.
        format: int32
        type: integer
      webhookUrl:
        description: The webhook URL to which the notification will be sent.
        type: string
    type: object
  NotificationSettingsFragment:
    description: Notification settings for a schedule.
    properties:
      emailRecipient:
        description: The email recipient to send notifications to (can be a list of semi-colon separated email addresses).
        type: string
      notificationLocale:
        description: The locale to use when sending a notification (fallback for unsupported languages is EN).
        type: string
      status:
        description: If notifications are enabled for this schedule (i.e. Enabled, Disabled).
        enum:
          - Enabled
          - Disabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: EnableStatus
      timeInMinutes:
        description: Time in minutes before event at which notification will be sent.
        format: int32
        type: integer
      webhookUrl:
        description: The webhook URL to which the notification will be sent.
        type: string
    type: object
  NotifyParameters:
    description: Properties for generating a Notification.
    properties:
      eventName:
        description: The type of event (i.e. AutoShutdown, Cost)
        enum:
          - AutoShutdown
          - Cost
        type: string
        x-ms-enum:
          modelAsString: true
          name: NotificationChannelEventType
      jsonPayload:
        description: Properties for the notification in json format.
        type: string
    type: object
  OperationError:
    description: Error details for the operation in case of a failure.
    properties:
      code:
        description: The error code of the operation error.
        type: string
      message:
        description: The error message of the operation error.
        type: string
    type: object
  OperationMetadata:
    description: The REST API operation supported by DevTestLab ResourceProvider.
    properties:
      display:
        $ref: "#/definitions/OperationMetadataDisplay"
        description: The object that describes the operations
      name:
        description: "Operation name: {provider}/{resource}/{operation}"
        type: string
    type: object
  OperationMetadataDisplay:
    description: The object that describes the operations
    properties:
      description:
        description: Friendly name of the operation
        type: string
      operation:
        description: "Operation type: read, write, delete, listKeys/action, etc."
        type: string
      provider:
        description: Friendly name of the resource provider
        type: string
      resource:
        description: Resource type on which the operation is performed.
        type: string
    type: object
  OperationResult:
    description: An Operation Result
    properties:
      error:
        $ref: "#/definitions/OperationError"
        description: Error details for the operation in case of a failure.
      status:
        description: The operation status.
        type: string
      statusCode:
        description: The status code for the operation.
        enum:
          - Continue
          - SwitchingProtocols
          - OK
          - Created
          - Accepted
          - NonAuthoritativeInformation
          - NoContent
          - ResetContent
          - PartialContent
          - MultipleChoices
          - MovedPermanently
          - Redirect
          - SeeOther
          - NotModified
          - UseProxy
          - Unused
          - TemporaryRedirect
          - BadRequest
          - Unauthorized
          - PaymentRequired
          - Forbidden
          - NotFound
          - MethodNotAllowed
          - NotAcceptable
          - ProxyAuthenticationRequired
          - RequestTimeout
          - Conflict
          - Gone
          - LengthRequired
          - PreconditionFailed
          - RequestEntityTooLarge
          - RequestUriTooLong
          - UnsupportedMediaType
          - RequestedRangeNotSatisfiable
          - ExpectationFailed
          - UpgradeRequired
          - InternalServerError
          - NotImplemented
          - BadGateway
          - ServiceUnavailable
          - GatewayTimeout
          - HttpVersionNotSupported
        type: string
        x-ms-enum:
          modelAsString: true
          name: HttpStatusCode
    type: object
  ParameterInfo:
    description: Information about an artifact's parameter.
    properties:
      name:
        description: The name of the artifact parameter.
        type: string
      value:
        description: The value of the artifact parameter.
        type: string
    type: object
  ParametersValueFileInfo:
    description: A file containing a set of parameter values for an ARM template.
    properties:
      fileName:
        description: File name.
        type: string
      parametersValueInfo:
        description: Contents of the file.
        type: object
    type: object
  PercentageCostThresholdProperties:
    description: Properties of a percentage cost threshold.
    properties:
      thresholdValue:
        description: The cost threshold value.
        format: double
        type: number
    type: object
  Policy:
    allOf:
      - $ref: "#/definitions/Resource"
    description: A Policy.
    properties:
      properties:
        $ref: "#/definitions/PolicyProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
    required:
      - properties
    type: object
  PolicyFragment:
    allOf:
      - $ref: "#/definitions/UpdateResource"
    description: A Policy.
    properties:
      properties:
        $ref: "#/definitions/PolicyPropertiesFragment"
        description: The properties of the resource.
        x-ms-client-flatten: true
    type: object
  PolicyList:
    description: The response of a list operation.
    properties:
      nextLink:
        description: Link for next set of results.
        type: string
      value:
        description: Results of the list operation.
        items:
          $ref: "#/definitions/Policy"
        type: array
    type: object
  PolicyProperties:
    description: Properties of a Policy.
    properties:
      createdDate:
        description: The creation date of the policy.
        format: date-time
        readOnly: true
        type: string
      description:
        description: The description of the policy.
        type: string
      evaluatorType:
        description: The evaluator type of the policy (i.e. AllowedValuesPolicy, MaxValuePolicy).
        enum:
          - AllowedValuesPolicy
          - MaxValuePolicy
        type: string
        x-ms-enum:
          modelAsString: true
          name: PolicyEvaluatorType
      factData:
        description: The fact data of the policy.
        type: string
      factName:
        description: The fact name of the policy (e.g. LabVmCount, LabVmSize, MaxVmsAllowedPerLab, etc.
        enum:
          - UserOwnedLabVmCount
          - UserOwnedLabPremiumVmCount
          - LabVmCount
          - LabPremiumVmCount
          - LabVmSize
          - GalleryImage
          - UserOwnedLabVmCountInSubnet
          - LabTargetCost
          - EnvironmentTemplate
          - ScheduleEditPermission
        type: string
        x-ms-enum:
          modelAsString: true
          name: PolicyFactName
      provisioningState:
        description: The provisioning status of the resource.
        readOnly: true
        type: string
      status:
        description: The status of the policy.
        enum:
          - Enabled
          - Disabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: PolicyStatus
      threshold:
        description: The threshold of the policy (i.e. a number for MaxValuePolicy, and a JSON array of values for AllowedValuesPolicy).
        type: string
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        readOnly: true
        type: string
    type: object
  PolicyPropertiesFragment:
    description: Properties of a Policy.
    properties:
      description:
        description: The description of the policy.
        type: string
      evaluatorType:
        description: The evaluator type of the policy (i.e. AllowedValuesPolicy, MaxValuePolicy).
        enum:
          - AllowedValuesPolicy
          - MaxValuePolicy
        type: string
        x-ms-enum:
          modelAsString: true
          name: PolicyEvaluatorType
      factData:
        description: The fact data of the policy.
        type: string
      factName:
        description: The fact name of the policy (e.g. LabVmCount, LabVmSize, MaxVmsAllowedPerLab, etc.
        enum:
          - UserOwnedLabVmCount
          - UserOwnedLabPremiumVmCount
          - LabVmCount
          - LabPremiumVmCount
          - LabVmSize
          - GalleryImage
          - UserOwnedLabVmCountInSubnet
          - LabTargetCost
          - EnvironmentTemplate
          - ScheduleEditPermission
        type: string
        x-ms-enum:
          modelAsString: true
          name: PolicyFactName
      status:
        description: The status of the policy.
        enum:
          - Enabled
          - Disabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: PolicyStatus
      threshold:
        description: The threshold of the policy (i.e. a number for MaxValuePolicy, and a JSON array of values for AllowedValuesPolicy).
        type: string
    type: object
  PolicySetResult:
    description: Result of a policy set evaluation.
    properties:
      hasError:
        description: A value indicating whether this policy set evaluation has discovered violations.
        type: boolean
      policyViolations:
        description: The list of policy violations.
        items:
          $ref: "#/definitions/PolicyViolation"
        type: array
    type: object
  PolicyViolation:
    description: Policy violation.
    properties:
      code:
        description: The code of the policy violation.
        type: string
      message:
        description: The message of the policy violation.
        type: string
    type: object
  Port:
    description: Properties of a network port.
    properties:
      backendPort:
        description: Backend port of the target virtual machine.
        format: int32
        type: integer
      transportProtocol:
        description: Protocol type of the port.
        enum:
          - Tcp
          - Udp
        type: string
        x-ms-enum:
          modelAsString: true
          name: TransportProtocol
    type: object
  PortFragment:
    description: Properties of a network port.
    properties:
      backendPort:
        description: Backend port of the target virtual machine.
        format: int32
        type: integer
      transportProtocol:
        description: Protocol type of the port.
        enum:
          - Tcp
          - Udp
        type: string
        x-ms-enum:
          modelAsString: true
          name: TransportProtocol
    type: object
  ProviderOperationResult:
    description: Result of the request to list REST API operations
    properties:
      nextLink:
        description: URL to get the next set of operation list results if there are any.
        readOnly: true
        type: string
      value:
        description: List of operations supported by the resource provider.
        items:
          $ref: "#/definitions/OperationMetadata"
        type: array
    type: object
  RdpConnection:
    description: Represents a .rdp file
    properties:
      contents:
        description: The contents of the .rdp file
        type: string
    type: object
  ResizeLabVirtualMachineProperties:
    description: Request body for resizing a virtual machine.
    properties:
      size:
        description: Specifies the size of the virtual machine.
        type: string
    type: object
  Resource:
    description: An Azure resource.
    properties:
      id:
        description: The identifier of the resource.
        readOnly: true
        type: string
      location:
        description: The location of the resource.
        type: string
      name:
        description: The name of the resource.
        readOnly: true
        type: string
      tags:
        additionalProperties:
          type: string
        description: The tags of the resource.
        type: object
      type:
        description: The type of the resource.
        readOnly: true
        type: string
    type: object
    x-ms-azure-resource: true
  RetargetScheduleProperties:
    description: Properties for retargeting a virtual machine schedule.
    properties:
      currentResourceId:
        description: The resource Id of the virtual machine on which the schedule operates
        type: string
      targetResourceId:
        description: The resource Id of the virtual machine that the schedule should be retargeted to
        type: string
    type: object
  Schedule:
    allOf:
      - $ref: "#/definitions/Resource"
    description: A schedule.
    properties:
      properties:
        $ref: "#/definitions/ScheduleProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
    required:
      - properties
    type: object
  ScheduleCreationParameter:
    description: Properties for creating a schedule.
    properties:
      location:
        description: The location of the new virtual machine or environment
        type: string
      name:
        description: The name of the virtual machine or environment
        type: string
      properties:
        $ref: "#/definitions/ScheduleCreationParameterProperties"
        description: The properties of the schedule.
        x-ms-client-flatten: true
      tags:
        additionalProperties:
          type: string
        description: The tags of the resource.
        type: object
    type: object
  ScheduleCreationParameterFragment:
    description: Properties for creating a schedule.
    properties:
      location:
        description: The location of the new virtual machine or environment
        type: string
      name:
        description: The name of the virtual machine or environment
        type: string
      properties:
        $ref: "#/definitions/ScheduleCreationParameterPropertiesFragment"
        description: The properties of the schedule.
        x-ms-client-flatten: true
      tags:
        additionalProperties:
          type: string
        description: The tags of the resource.
        type: object
    type: object
  ScheduleCreationParameterProperties:
    description: Properties for schedule creation.
    properties:
      dailyRecurrence:
        $ref: "#/definitions/DayDetails"
        description: If the schedule will occur once each day of the week, specify the daily recurrence.
      hourlyRecurrence:
        $ref: "#/definitions/HourDetails"
        description: If the schedule will occur multiple times a day, specify the hourly recurrence.
      notificationSettings:
        $ref: "#/definitions/NotificationSettings"
        description: Notification settings.
      status:
        description: The status of the schedule (i.e. Enabled, Disabled)
        enum:
          - Enabled
          - Disabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: EnableStatus
      targetResourceId:
        description: The resource ID to which the schedule belongs
        type: string
      taskType:
        description: The task type of the schedule (e.g. LabVmsShutdownTask, LabVmAutoStart).
        type: string
      timeZoneId:
        description: The time zone ID (e.g. Pacific Standard time).
        type: string
      weeklyRecurrence:
        $ref: "#/definitions/WeekDetails"
        description: If the schedule will occur only some days of the week, specify the weekly recurrence.
    type: object
  ScheduleCreationParameterPropertiesFragment:
    description: Properties for schedule creation.
    properties:
      dailyRecurrence:
        $ref: "#/definitions/DayDetailsFragment"
        description: If the schedule will occur once each day of the week, specify the daily recurrence.
      hourlyRecurrence:
        $ref: "#/definitions/HourDetailsFragment"
        description: If the schedule will occur multiple times a day, specify the hourly recurrence.
      notificationSettings:
        $ref: "#/definitions/NotificationSettingsFragment"
        description: Notification settings.
      status:
        description: The status of the schedule (i.e. Enabled, Disabled)
        enum:
          - Enabled
          - Disabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: EnableStatus
      targetResourceId:
        description: The resource ID to which the schedule belongs
        type: string
      taskType:
        description: The task type of the schedule (e.g. LabVmsShutdownTask, LabVmAutoStart).
        type: string
      timeZoneId:
        description: The time zone ID (e.g. Pacific Standard time).
        type: string
      weeklyRecurrence:
        $ref: "#/definitions/WeekDetailsFragment"
        description: If the schedule will occur only some days of the week, specify the weekly recurrence.
    type: object
  ScheduleFragment:
    allOf:
      - $ref: "#/definitions/UpdateResource"
    description: A schedule.
    properties:
      properties:
        $ref: "#/definitions/SchedulePropertiesFragment"
        description: The properties of the resource.
        x-ms-client-flatten: true
    type: object
  ScheduleList:
    description: The response of a list operation.
    properties:
      nextLink:
        description: Link for next set of results.
        type: string
      value:
        description: Results of the list operation.
        items:
          $ref: "#/definitions/Schedule"
        type: array
    type: object
  ScheduleProperties:
    description: Properties of a schedule.
    properties:
      createdDate:
        description: The creation date of the schedule.
        format: date-time
        readOnly: true
        type: string
      dailyRecurrence:
        $ref: "#/definitions/DayDetails"
        description: If the schedule will occur once each day of the week, specify the daily recurrence.
      hourlyRecurrence:
        $ref: "#/definitions/HourDetails"
        description: If the schedule will occur multiple times a day, specify the hourly recurrence.
      notificationSettings:
        $ref: "#/definitions/NotificationSettings"
        description: Notification settings.
      provisioningState:
        description: The provisioning status of the resource.
        readOnly: true
        type: string
      status:
        description: The status of the schedule (i.e. Enabled, Disabled)
        enum:
          - Enabled
          - Disabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: EnableStatus
      targetResourceId:
        description: The resource ID to which the schedule belongs
        type: string
      taskType:
        description: The task type of the schedule (e.g. LabVmsShutdownTask, LabVmAutoStart).
        type: string
      timeZoneId:
        description: The time zone ID (e.g. Pacific Standard time).
        type: string
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        readOnly: true
        type: string
      weeklyRecurrence:
        $ref: "#/definitions/WeekDetails"
        description: If the schedule will occur only some days of the week, specify the weekly recurrence.
    type: object
  SchedulePropertiesFragment:
    description: Properties of a schedule.
    properties:
      dailyRecurrence:
        $ref: "#/definitions/DayDetailsFragment"
        description: If the schedule will occur once each day of the week, specify the daily recurrence.
      hourlyRecurrence:
        $ref: "#/definitions/HourDetailsFragment"
        description: If the schedule will occur multiple times a day, specify the hourly recurrence.
      notificationSettings:
        $ref: "#/definitions/NotificationSettingsFragment"
        description: Notification settings.
      status:
        description: The status of the schedule (i.e. Enabled, Disabled)
        enum:
          - Enabled
          - Disabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: EnableStatus
      targetResourceId:
        description: The resource ID to which the schedule belongs
        type: string
      taskType:
        description: The task type of the schedule (e.g. LabVmsShutdownTask, LabVmAutoStart).
        type: string
      timeZoneId:
        description: The time zone ID (e.g. Pacific Standard time).
        type: string
      weeklyRecurrence:
        $ref: "#/definitions/WeekDetailsFragment"
        description: If the schedule will occur only some days of the week, specify the weekly recurrence.
    type: object
  Secret:
    allOf:
      - $ref: "#/definitions/Resource"
    description: A secret.
    properties:
      properties:
        $ref: "#/definitions/SecretProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
    required:
      - properties
    type: object
  SecretFragment:
    allOf:
      - $ref: "#/definitions/UpdateResource"
    description: A secret.
    properties:
      properties:
        $ref: "#/definitions/SecretPropertiesFragment"
        description: The properties of the resource.
        x-ms-client-flatten: true
    type: object
  SecretList:
    description: The response of a list operation.
    properties:
      nextLink:
        description: Link for next set of results.
        type: string
      value:
        description: Results of the list operation.
        items:
          $ref: "#/definitions/Secret"
        type: array
    type: object
  SecretProperties:
    description: Properties of a secret.
    properties:
      provisioningState:
        description: The provisioning status of the resource.
        readOnly: true
        type: string
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        readOnly: true
        type: string
      value:
        description: The value of the secret for secret creation.
        type: string
    type: object
  SecretPropertiesFragment:
    description: Properties of a secret.
    properties:
      value:
        description: The value of the secret for secret creation.
        type: string
    type: object
  ServiceFabric:
    allOf:
      - $ref: "#/definitions/Resource"
    description: A Service Fabric.
    properties:
      properties:
        $ref: "#/definitions/ServiceFabricProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
    required:
      - properties
    type: object
  ServiceFabricFragment:
    allOf:
      - $ref: "#/definitions/UpdateResource"
    description: A Service Fabric.
    properties:
      properties:
        $ref: "#/definitions/ServiceFabricPropertiesFragment"
        description: The properties of the resource.
        x-ms-client-flatten: true
    type: object
  ServiceFabricList:
    description: The response of a list operation.
    properties:
      nextLink:
        description: Link for next set of results.
        type: string
      value:
        description: Results of the list operation.
        items:
          $ref: "#/definitions/ServiceFabric"
        type: array
    type: object
  ServiceFabricProperties:
    description: Properties of a service fabric.
    properties:
      applicableSchedule:
        $ref: "#/definitions/ApplicableSchedule"
        description: The applicable schedule for the virtual machine.
        readOnly: true
      environmentId:
        description: The resource id of the environment under which the service fabric resource is present
        type: string
      externalServiceFabricId:
        description: The backing service fabric resource's id
        type: string
      provisioningState:
        description: The provisioning status of the resource.
        readOnly: true
        type: string
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        readOnly: true
        type: string
    type: object
  ServiceFabricPropertiesFragment:
    description: Properties of a service fabric.
    properties:
      environmentId:
        description: The resource id of the environment under which the service fabric resource is present
        type: string
      externalServiceFabricId:
        description: The backing service fabric resource's id
        type: string
    type: object
  ServiceRunner:
    allOf:
      - $ref: "#/definitions/Resource"
    description: A container for a managed identity to execute DevTest lab services.
    properties:
      identity:
        $ref: "#/definitions/IdentityProperties"
        description: The identity of the resource.
    type: object
  SharedPublicIpAddressConfiguration:
    description: Properties of a virtual machine that determine how it is connected to a load balancer.
    properties:
      inboundNatRules:
        description: The incoming NAT rules
        items:
          $ref: "#/definitions/InboundNatRule"
        type: array
    type: object
  SharedPublicIpAddressConfigurationFragment:
    description: Properties of a virtual machine that determine how it is connected to a load balancer.
    properties:
      inboundNatRules:
        description: The incoming NAT rules
        items:
          $ref: "#/definitions/InboundNatRuleFragment"
        type: array
    type: object
  ShutdownNotificationContent:
    description: The contents of a shutdown notification. Webhooks can use this type to deserialize the request body when they get notified of an imminent shutdown.
    properties:
      delayUrl120:
        description: The URL to delay shutdown by 2 hours.
        type: string
      delayUrl60:
        description: The URL to delay shutdown by 60 minutes.
        type: string
      eventType:
        description: The event for which a notification will be sent.
        type: string
      guid:
        description: The GUID for the virtual machine to be shut down.
        type: string
      labName:
        description: The lab for the schedule.
        type: string
      minutesUntilShutdown:
        description: Minutes remaining until shutdown
        type: string
      owner:
        description: The owner of the virtual machine.
        type: string
      resourceGroupName:
        description: The resource group name for the schedule.
        type: string
      skipUrl:
        description: The URL to skip auto-shutdown.
        type: string
      subscriptionId:
        description: The subscription ID for the schedule.
        type: string
      text:
        description: The text for the notification.
        type: string
      vmName:
        description: The virtual machine to be shut down.
        type: string
      vmUrl:
        description: The URL of the virtual machine.
        type: string
    type: object
  Subnet:
    description: Subnet information.
    properties:
      allowPublicIp:
        description: The permission policy of the subnet for allowing public IP addresses (i.e. Allow, Deny)).
        enum:
          - Default
          - Deny
          - Allow
        type: string
        x-ms-enum:
          modelAsString: true
          name: UsagePermissionType
      labSubnetName:
        description: The name of the subnet as seen in the lab.
        type: string
      resourceId:
        description: The resource ID of the subnet.
        type: string
    type: object
  SubnetFragment:
    description: Subnet information.
    properties:
      allowPublicIp:
        description: The permission policy of the subnet for allowing public IP addresses (i.e. Allow, Deny)).
        enum:
          - Default
          - Deny
          - Allow
        type: string
        x-ms-enum:
          modelAsString: true
          name: UsagePermissionType
      labSubnetName:
        description: The name of the subnet as seen in the lab.
        type: string
      resourceId:
        description: The resource ID of the subnet.
        type: string
    type: object
  SubnetOverride:
    description: Property overrides on a subnet of a virtual network.
    properties:
      labSubnetName:
        description: The name given to the subnet within the lab.
        type: string
      resourceId:
        description: The resource ID of the subnet.
        type: string
      sharedPublicIpAddressConfiguration:
        $ref: "#/definitions/SubnetSharedPublicIpAddressConfiguration"
        description: Properties that virtual machines on this subnet will share.
      useInVmCreationPermission:
        description: Indicates whether this subnet can be used during virtual machine creation (i.e. Allow, Deny).
        enum:
          - Default
          - Deny
          - Allow
        type: string
        x-ms-enum:
          modelAsString: true
          name: UsagePermissionType
      usePublicIpAddressPermission:
        description: Indicates whether public IP addresses can be assigned to virtual machines on this subnet (i.e. Allow, Deny).
        enum:
          - Default
          - Deny
          - Allow
        type: string
        x-ms-enum:
          modelAsString: true
          name: UsagePermissionType
      virtualNetworkPoolName:
        description: The virtual network pool associated with this subnet.
        type: string
    type: object
  SubnetOverrideFragment:
    description: Property overrides on a subnet of a virtual network.
    properties:
      labSubnetName:
        description: The name given to the subnet within the lab.
        type: string
      resourceId:
        description: The resource ID of the subnet.
        type: string
      sharedPublicIpAddressConfiguration:
        $ref: "#/definitions/SubnetSharedPublicIpAddressConfigurationFragment"
        description: Properties that virtual machines on this subnet will share.
      useInVmCreationPermission:
        description: Indicates whether this subnet can be used during virtual machine creation (i.e. Allow, Deny).
        enum:
          - Default
          - Deny
          - Allow
        type: string
        x-ms-enum:
          modelAsString: true
          name: UsagePermissionType
      usePublicIpAddressPermission:
        description: Indicates whether public IP addresses can be assigned to virtual machines on this subnet (i.e. Allow, Deny).
        enum:
          - Default
          - Deny
          - Allow
        type: string
        x-ms-enum:
          modelAsString: true
          name: UsagePermissionType
      virtualNetworkPoolName:
        description: The virtual network pool associated with this subnet.
        type: string
    type: object
  SubnetSharedPublicIpAddressConfiguration:
    description: Configuration for public IP address sharing.
    properties:
      allowedPorts:
        description: Backend ports that virtual machines on this subnet are allowed to expose
        items:
          $ref: "#/definitions/Port"
        type: array
    type: object
  SubnetSharedPublicIpAddressConfigurationFragment:
    description: Configuration for public IP address sharing.
    properties:
      allowedPorts:
        description: Backend ports that virtual machines on this subnet are allowed to expose
        items:
          $ref: "#/definitions/PortFragment"
        type: array
    type: object
  TargetCostProperties:
    description: Properties of a cost target.
    properties:
      costThresholds:
        description: Cost thresholds.
        items:
          $ref: "#/definitions/CostThresholdProperties"
        type: array
      cycleEndDateTime:
        description: Reporting cycle end date.
        format: date-time
        type: string
      cycleStartDateTime:
        description: Reporting cycle start date.
        format: date-time
        type: string
      cycleType:
        description: Reporting cycle type.
        enum:
          - CalendarMonth
          - Custom
        type: string
        x-ms-enum:
          modelAsString: true
          name: ReportingCycleType
      status:
        description: Target cost status
        enum:
          - Enabled
          - Disabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: TargetCostStatus
      target:
        description: Lab target cost
        format: int32
        type: integer
    type: object
  UpdateResource:
    description: Represents an update resource
    properties:
      tags:
        additionalProperties:
          type: string
        description: The tags of the resource.
        type: object
    type: object
  User:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Profile of a lab user.
    properties:
      properties:
        $ref: "#/definitions/UserProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
    type: object
  UserFragment:
    allOf:
      - $ref: "#/definitions/UpdateResource"
    description: Profile of a lab user.
    properties:
      properties:
        $ref: "#/definitions/UserPropertiesFragment"
        description: The properties of the resource.
        x-ms-client-flatten: true
    type: object
  UserIdentity:
    description: Identity attributes of a lab user.
    properties:
      appId:
        description: Set to the app Id of the client JWT making the request.
        type: string
      objectId:
        description: Set to the object Id of the client JWT making the request. Not all users have object Id. For CSP (reseller) scenarios for example, object Id is not available.
        type: string
      principalId:
        description: Set to the principal Id of the client JWT making the request. Service principal will not have the principal Id.
        type: string
      principalName:
        description: Set to the principal name / UPN of the client JWT making the request.
        type: string
      tenantId:
        description: Set to the tenant ID of the client JWT making the request.
        type: string
    type: object
  UserIdentityFragment:
    description: Identity attributes of a lab user.
    properties:
      appId:
        description: Set to the app Id of the client JWT making the request.
        type: string
      objectId:
        description: Set to the object Id of the client JWT making the request. Not all users have object Id. For CSP (reseller) scenarios for example, object Id is not available.
        type: string
      principalId:
        description: Set to the principal Id of the client JWT making the request. Service principal will not have the principal Id.
        type: string
      principalName:
        description: Set to the principal name / UPN of the client JWT making the request.
        type: string
      tenantId:
        description: Set to the tenant ID of the client JWT making the request.
        type: string
    type: object
  UserList:
    description: The response of a list operation.
    properties:
      nextLink:
        description: Link for next set of results.
        type: string
      value:
        description: Results of the list operation.
        items:
          $ref: "#/definitions/User"
        type: array
    type: object
  UserProperties:
    description: Properties of a lab user profile.
    properties:
      createdDate:
        description: The creation date of the user profile.
        format: date-time
        readOnly: true
        type: string
      identity:
        $ref: "#/definitions/UserIdentity"
        description: The identity of the user.
      provisioningState:
        description: The provisioning status of the resource.
        readOnly: true
        type: string
      secretStore:
        $ref: "#/definitions/UserSecretStore"
        description: The secret store of the user.
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        readOnly: true
        type: string
    type: object
  UserPropertiesFragment:
    description: Properties of a lab user profile.
    properties:
      identity:
        $ref: "#/definitions/UserIdentityFragment"
        description: The identity of the user.
      secretStore:
        $ref: "#/definitions/UserSecretStoreFragment"
        description: The secret store of the user.
    type: object
  UserSecretStore:
    description: Properties of a user's secret store.
    properties:
      keyVaultId:
        description: The ID of the user's Key vault.
        type: string
      keyVaultUri:
        description: The URI of the user's Key vault.
        type: string
    type: object
  UserSecretStoreFragment:
    description: Properties of a user's secret store.
    properties:
      keyVaultId:
        description: The ID of the user's Key vault.
        type: string
      keyVaultUri:
        description: The URI of the user's Key vault.
        type: string
    type: object
  VirtualNetwork:
    allOf:
      - $ref: "#/definitions/Resource"
    description: A virtual network.
    properties:
      properties:
        $ref: "#/definitions/VirtualNetworkProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
    type: object
  VirtualNetworkFragment:
    allOf:
      - $ref: "#/definitions/UpdateResource"
    description: A virtual network.
    properties:
      properties:
        $ref: "#/definitions/VirtualNetworkPropertiesFragment"
        description: The properties of the resource.
        x-ms-client-flatten: true
    type: object
  VirtualNetworkList:
    description: The response of a list operation.
    properties:
      nextLink:
        description: Link for next set of results.
        type: string
      value:
        description: Results of the list operation.
        items:
          $ref: "#/definitions/VirtualNetwork"
        type: array
    type: object
  VirtualNetworkProperties:
    description: Properties of a virtual network.
    properties:
      allowedSubnets:
        description: The allowed subnets of the virtual network.
        items:
          $ref: "#/definitions/Subnet"
        type: array
      createdDate:
        description: The creation date of the virtual network.
        format: date-time
        readOnly: true
        type: string
      description:
        description: The description of the virtual network.
        type: string
      externalProviderResourceId:
        description: The Microsoft.Network resource identifier of the virtual network.
        type: string
      externalSubnets:
        description: The external subnet properties.
        items:
          $ref: "#/definitions/ExternalSubnet"
        readOnly: true
        type: array
      provisioningState:
        description: The provisioning status of the resource.
        readOnly: true
        type: string
      subnetOverrides:
        description: The subnet overrides of the virtual network.
        items:
          $ref: "#/definitions/SubnetOverride"
        type: array
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        readOnly: true
        type: string
    type: object
  VirtualNetworkPropertiesFragment:
    description: Properties of a virtual network.
    properties:
      allowedSubnets:
        description: The allowed subnets of the virtual network.
        items:
          $ref: "#/definitions/SubnetFragment"
        type: array
      description:
        description: The description of the virtual network.
        type: string
      externalProviderResourceId:
        description: The Microsoft.Network resource identifier of the virtual network.
        type: string
      subnetOverrides:
        description: The subnet overrides of the virtual network.
        items:
          $ref: "#/definitions/SubnetOverrideFragment"
        type: array
    type: object
  WeekDetails:
    description: Properties of a weekly schedule.
    properties:
      time:
        description: The time of the day the schedule will occur.
        type: string
      weekdays:
        description: The days of the week for which the schedule is set (e.g. Sunday, Monday, Tuesday, etc.).
        items:
          type: string
        type: array
    type: object
  WeekDetailsFragment:
    description: Properties of a weekly schedule.
    properties:
      time:
        description: The time of the day the schedule will occur.
        type: string
      weekdays:
        description: The days of the week for which the schedule is set (e.g. Sunday, Monday, Tuesday, etc.).
        items:
          type: string
        type: array
    type: object
  WindowsOsInfo:
    description: Information about a Windows OS.
    properties:
      windowsOsState:
        description: The state of the Windows OS (i.e. NonSysprepped, SysprepRequested, SysprepApplied).
        enum:
          - NonSysprepped
          - SysprepRequested
          - SysprepApplied
        type: string
        x-ms-enum:
          modelAsString: true
          name: WindowsOsState
    type: object
  WindowsOsInfoFragment:
    description: Information about a Windows OS.
    properties:
      windowsOsState:
        description: The state of the Windows OS (i.e. NonSysprepped, SysprepRequested, SysprepApplied).
        enum:
          - NonSysprepped
          - SysprepRequested
          - SysprepApplied
        type: string
        x-ms-enum:
          modelAsString: true
          name: WindowsOsState
    type: object
