swagger: "2.0"
schemes:
  - https
host: management.azure.com
info:
  description: Azure DevTest Labs REST API version 2015-05-21-preview.
  title: DevTestLabsClient
  version: 2015-05-21-preview
  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/preview/2015-05-21-preview/DTL.json
      version: "2.0"
  x-preferred: false
  x-providerName: azure.com
  x-serviceName: devtestlabs-DTL
  x-tags:
    - Azure
    - Microsoft
produces:
  - application/json
  - text/json
securityDefinitions:
  oauth2:
    authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize
    description: OAuth2 Implicit Grant
    flow: implicit
    scopes:
      user_impersonation: Access Microsoft Azure
    type: oauth2
security:
  - oauth2:
      - user_impersonation
parameters:
  api-version:
    default: 2015-05-21-preview
    description: Client API version.
    in: query
    name: api-version
    required: true
    type: string
  subscriptionId:
    description: The subscription ID.
    in: path
    name: subscriptionId
    required: true
    type: string
paths:
  "/subscriptions/{subscriptionId}/providers/Microsoft.DevTestLab/labs":
    get:
      consumes: []
      description: List labs.
      operationId: Lab_ListBySubscription
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The filter to apply on the operation.
          in: query
          name: $filter
          required: false
          type: string
        - format: int32
          in: query
          name: $top
          required: false
          type: integer
        - in: query
          name: $orderBy
          required: false
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ResponseWithContinuation[Lab]"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Lab
      x-ms-odata: "#/definitions/Lab"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs":
    get:
      consumes: []
      description: List labs.
      operationId: Lab_ListByResourceGroup
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The filter to apply on the operation.
          in: query
          name: $filter
          required: false
          type: string
        - format: int32
          in: query
          name: $top
          required: false
          type: integer
        - in: query
          name: $orderBy
          required: false
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ResponseWithContinuation[Lab]"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Lab
      x-ms-odata: "#/definitions/Lab"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources":
    get:
      consumes: []
      description: List artifact sources.
      operationId: ArtifactSource_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The filter to apply on the operation.
          in: query
          name: $filter
          required: false
          type: string
        - format: int32
          in: query
          name: $top
          required: false
          type: integer
        - in: query
          name: $orderBy
          required: false
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ResponseWithContinuation[ArtifactSource]"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - ArtifactSource
      x-ms-odata: "#/definitions/ArtifactSource"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources/{artifactSourceName}/artifacts":
    get:
      consumes: []
      description: List artifacts.
      operationId: Artifact_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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 filter to apply on the operation.
          in: query
          name: $filter
          required: false
          type: string
        - format: int32
          in: query
          name: $top
          required: false
          type: integer
        - in: query
          name: $orderBy
          required: false
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ResponseWithContinuation[Artifact]"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Artifact
      x-ms-odata: "#/definitions/Artifact"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources/{artifactSourceName}/artifacts/{name}":
    get:
      consumes: []
      description: Get artifact.
      operationId: Artifact_GetResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Artifact"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Artifact
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources/{artifactSourceName}/artifacts/{name}/generateArmTemplate":
    post:
      consumes:
        - application/json
        - text/json
      description: Generates an ARM template for the given artifact, uploads the required files to a storage account, and validates the generated artifact.
      operationId: Artifact_GenerateArmTemplate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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
        - 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"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Artifact
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/artifactsources/{name}":
    delete:
      consumes: []
      description: Delete artifact source.
      operationId: ArtifactSource_DeleteResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - ArtifactSource
    get:
      consumes: []
      description: Get artifact source.
      operationId: ArtifactSource_GetResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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
          schema:
            $ref: "#/definitions/ArtifactSource"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - ArtifactSource
    patch:
      consumes:
        - application/json
        - text/json
      description: Modify properties of artifact sources.
      operationId: ArtifactSource_PatchResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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
        - in: body
          name: artifactSource
          required: true
          schema:
            $ref: "#/definitions/ArtifactSource"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ArtifactSource"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - ArtifactSource
    put:
      consumes:
        - application/json
        - text/json
      description: Create or replace an existing artifact source.
      operationId: ArtifactSource_CreateOrUpdateResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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
        - 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"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - ArtifactSource
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/costinsights":
    get:
      consumes: []
      description: List cost insights.
      operationId: CostInsight_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The filter to apply on the operation.
          in: query
          name: $filter
          required: false
          type: string
        - format: int32
          in: query
          name: $top
          required: false
          type: integer
        - in: query
          name: $orderBy
          required: false
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ResponseWithContinuation[CostInsight]"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - CostInsight
      x-ms-odata: "#/definitions/CostInsight"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/costinsights/{name}":
    get:
      consumes: []
      description: Get cost insight.
      operationId: CostInsight_GetResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the cost insight.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/CostInsight"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - CostInsight
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/costinsights/{name}/refreshData":
    post:
      consumes: []
      description: Refresh Lab's Cost Insight Data. This operation can take a while to complete.
      operationId: CostInsight_RefreshData
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the cost insight.
          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"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - CostInsight
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/costs":
    get:
      consumes: []
      description: List costs.
      operationId: Cost_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The filter to apply on the operation.
          in: query
          name: $filter
          required: false
          type: string
        - format: int32
          in: query
          name: $top
          required: false
          type: integer
        - in: query
          name: $orderBy
          required: false
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ResponseWithContinuation[Cost]"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Cost
      x-ms-odata: "#/definitions/Cost"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/costs/{name}":
    get:
      consumes: []
      description: Get cost.
      operationId: Cost_GetResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Cost"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Cost
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/costs/{name}/refreshData":
    post:
      consumes: []
      description: Refresh Lab's Cost Data. This operation can take a while to complete.
      operationId: Cost_RefreshData
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Cost
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/customimages":
    get:
      consumes: []
      description: List custom images.
      operationId: CustomImage_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The filter to apply on the operation.
          in: query
          name: $filter
          required: false
          type: string
        - format: int32
          in: query
          name: $top
          required: false
          type: integer
        - in: query
          name: $orderBy
          required: false
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ResponseWithContinuation[CustomImage]"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - CustomImage
      x-ms-odata: "#/definitions/CustomImage"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/customimages/{name}":
    delete:
      consumes: []
      description: Delete custom image. This operation can take a while to complete.
      operationId: CustomImage_DeleteResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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:
        "202":
          description: Accepted
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - CustomImage
      x-ms-long-running-operation: true
    get:
      consumes: []
      description: Get custom image.
      operationId: CustomImage_GetResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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
          schema:
            $ref: "#/definitions/CustomImage"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - CustomImage
    put:
      consumes:
        - application/json
        - text/json
      description: Create or replace an existing custom image. This operation can take a while to complete.
      operationId: CustomImage_CreateOrUpdateResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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
        - 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"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - CustomImage
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/formulas":
    get:
      consumes: []
      description: List formulas.
      operationId: Formula_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The filter to apply on the operation.
          in: query
          name: $filter
          required: false
          type: string
        - format: int32
          in: query
          name: $top
          required: false
          type: integer
        - in: query
          name: $orderBy
          required: false
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ResponseWithContinuation[Formula]"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Formula
      x-ms-odata: "#/definitions/Formula"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/formulas/{name}":
    delete:
      consumes: []
      description: Delete formula.
      operationId: Formula_DeleteResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Formula
    get:
      consumes: []
      description: Get formula.
      operationId: Formula_GetResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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
          schema:
            $ref: "#/definitions/Formula"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Formula
    put:
      consumes:
        - application/json
        - text/json
      description: Create or replace an existing Formula. This operation can take a while to complete.
      operationId: Formula_CreateOrUpdateResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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
        - 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"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Formula
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/galleryimages":
    get:
      consumes: []
      description: List gallery images.
      operationId: GalleryImage_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The filter to apply on the operation.
          in: query
          name: $filter
          required: false
          type: string
        - format: int32
          in: query
          name: $top
          required: false
          type: integer
        - in: query
          name: $orderBy
          required: false
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ResponseWithContinuation[GalleryImage]"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - GalleryImage
      x-ms-odata: "#/definitions/GalleryImage"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/policysets/{name}/evaluatePolicies":
    post:
      consumes:
        - application/json
        - text/json
      description: Evaluates Lab Policy.
      operationId: PolicySet_EvaluatePolicies
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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
        - 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"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - PolicySet
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/policysets/{policySetName}/policies":
    get:
      consumes: []
      description: List policies.
      operationId: Policy_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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 filter to apply on the operation.
          in: query
          name: $filter
          required: false
          type: string
        - format: int32
          in: query
          name: $top
          required: false
          type: integer
        - in: query
          name: $orderBy
          required: false
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ResponseWithContinuation[Policy]"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Policy
      x-ms-odata: "#/definitions/Policy"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/policysets/{policySetName}/policies/{name}":
    delete:
      consumes: []
      description: Delete policy.
      operationId: Policy_DeleteResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Policy
    get:
      consumes: []
      description: Get policy.
      operationId: Policy_GetResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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
          schema:
            $ref: "#/definitions/Policy"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Policy
    patch:
      consumes:
        - application/json
        - text/json
      description: Modify properties of policies.
      operationId: Policy_PatchResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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
        - in: body
          name: policy
          required: true
          schema:
            $ref: "#/definitions/Policy"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Policy"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Policy
    put:
      consumes:
        - application/json
        - text/json
      description: Create or replace an existing policy.
      operationId: Policy_CreateOrUpdateResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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
        - 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"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Policy
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/schedules":
    get:
      consumes: []
      description: List schedules.
      operationId: Schedule_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The filter to apply on the operation.
          in: query
          name: $filter
          required: false
          type: string
        - format: int32
          in: query
          name: $top
          required: false
          type: integer
        - in: query
          name: $orderBy
          required: false
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ResponseWithContinuation[Schedule]"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Schedule
      x-ms-odata: "#/definitions/Schedule"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/schedules/{name}":
    delete:
      consumes: []
      description: Delete schedule. This operation can take a while to complete.
      operationId: Schedule_DeleteResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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:
        "202":
          description: Accepted
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Schedule
      x-ms-long-running-operation: true
    get:
      consumes: []
      description: Get schedule.
      operationId: Schedule_GetResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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/Schedule"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Schedule
    patch:
      consumes:
        - application/json
        - text/json
      description: Modify properties of schedules.
      operationId: Schedule_PatchResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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
        - in: body
          name: schedule
          required: true
          schema:
            $ref: "#/definitions/Schedule"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Schedule"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Schedule
    put:
      consumes:
        - application/json
        - text/json
      description: Create or replace an existing schedule. This operation can take a while to complete.
      operationId: Schedule_CreateOrUpdateResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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
        - 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"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Schedule
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/schedules/{name}/execute":
    post:
      consumes: []
      description: Execute a schedule. This operation can take a while to complete.
      operationId: Schedule_Execute
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Schedule
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines":
    get:
      consumes: []
      description: List virtual machines.
      operationId: VirtualMachine_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The filter to apply on the operation.
          in: query
          name: $filter
          required: false
          type: string
        - format: int32
          in: query
          name: $top
          required: false
          type: integer
        - in: query
          name: $orderBy
          required: false
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ResponseWithContinuation[LabVirtualMachine]"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - VirtualMachine
      x-ms-odata: "#/definitions/LabVirtualMachine"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines/{name}":
    delete:
      consumes: []
      description: Delete virtual machine. This operation can take a while to complete.
      operationId: VirtualMachine_DeleteResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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:
        "202":
          description: Accepted
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - VirtualMachine
      x-ms-long-running-operation: true
    get:
      consumes: []
      description: Get virtual machine.
      operationId: VirtualMachine_GetResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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/LabVirtualMachine"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - VirtualMachine
    patch:
      consumes:
        - application/json
        - text/json
      description: Modify properties of virtual machines.
      operationId: VirtualMachine_PatchResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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
        - in: body
          name: labVirtualMachine
          required: true
          schema:
            $ref: "#/definitions/LabVirtualMachine"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/LabVirtualMachine"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - VirtualMachine
    put:
      consumes:
        - application/json
        - text/json
      description: Create or replace an existing Virtual Machine. This operation can take a while to complete.
      operationId: VirtualMachine_CreateOrUpdateResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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
        - 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"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - VirtualMachine
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines/{name}/applyArtifacts":
    post:
      consumes:
        - application/json
        - text/json
      description: Apply artifacts to Lab VM. This operation can take a while to complete.
      operationId: VirtualMachine_ApplyArtifacts
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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
        - 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"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - VirtualMachine
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines/{name}/start":
    post:
      consumes: []
      description: Start a Lab VM. This operation can take a while to complete.
      operationId: VirtualMachine_Start
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - VirtualMachine
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualmachines/{name}/stop":
    post:
      consumes: []
      description: Stop a Lab VM. This operation can take a while to complete.
      operationId: VirtualMachine_Stop
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - VirtualMachine
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualnetworks":
    get:
      consumes: []
      description: List virtual networks.
      operationId: VirtualNetwork_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The filter to apply on the operation.
          in: query
          name: $filter
          required: false
          type: string
        - format: int32
          in: query
          name: $top
          required: false
          type: integer
        - in: query
          name: $orderBy
          required: false
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ResponseWithContinuation[VirtualNetwork]"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - VirtualNetwork
      x-ms-odata: "#/definitions/VirtualNetwork"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{labName}/virtualnetworks/{name}":
    delete:
      consumes: []
      description: Delete virtual network. This operation can take a while to complete.
      operationId: VirtualNetwork_DeleteResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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:
        "202":
          description: Accepted
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - VirtualNetwork
      x-ms-long-running-operation: true
    get:
      consumes: []
      description: Get virtual network.
      operationId: VirtualNetwork_GetResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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
          schema:
            $ref: "#/definitions/VirtualNetwork"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - VirtualNetwork
    patch:
      consumes:
        - application/json
        - text/json
      description: Modify properties of virtual networks.
      operationId: VirtualNetwork_PatchResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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
        - in: body
          name: virtualNetwork
          required: true
          schema:
            $ref: "#/definitions/VirtualNetwork"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/VirtualNetwork"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - VirtualNetwork
    put:
      consumes:
        - application/json
        - text/json
      description: Create or replace an existing virtual network. This operation can take a while to complete.
      operationId: VirtualNetwork_CreateOrUpdateResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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
        - 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"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - VirtualNetwork
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}":
    delete:
      consumes: []
      description: Delete lab. This operation can take a while to complete.
      operationId: Lab_DeleteResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "202":
          description: Accepted
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Lab
      x-ms-long-running-operation: true
    get:
      consumes: []
      description: Get lab.
      operationId: Lab_GetResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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/Lab"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Lab
    patch:
      consumes:
        - application/json
        - text/json
      description: Modify properties of labs.
      operationId: Lab_PatchResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: name
          required: true
          type: string
        - in: body
          name: lab
          required: true
          schema:
            $ref: "#/definitions/Lab"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Lab"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Lab
    put:
      consumes:
        - application/json
        - text/json
      description: Create or replace an existing Lab. This operation can take a while to complete.
      operationId: Lab_CreateOrUpdateResource
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: name
          required: true
          type: string
        - 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"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Lab
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/createEnvironment":
    post:
      consumes:
        - application/json
        - text/json
      description: Create virtual machines in a Lab. This operation can take a while to complete.
      operationId: Lab_CreateEnvironment
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: name
          required: true
          type: string
        - in: body
          name: labVirtualMachine
          required: true
          schema:
            $ref: "#/definitions/LabVirtualMachine"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Lab
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/generateUploadUri":
    post:
      consumes:
        - application/json
        - text/json
      description: Generate a URI for uploading custom disk images to a Lab.
      operationId: Lab_GenerateUploadUri
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: name
          required: true
          type: string
        - 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"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Lab
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/listVhds":
    post:
      consumes: []
      description: List disk images available for custom image creation.
      operationId: Lab_ListVhds
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - 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/ResponseWithContinuation[LabVhd]"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - oauth2:
            - user_impersonation
      tags:
        - Lab
      x-ms-pageable:
        nextLinkName: nextLink
definitions:
  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
  ArmTemplateInfo:
    description: Information about a generated ARM template.
    properties:
      parameters:
        $ref: "#/definitions/Object"
        description: The parameters of the ARM template.
      template:
        $ref: "#/definitions/Object"
        description: The template's contents.
    type: object
  Artifact:
    description: An artifact.
    properties:
      id:
        description: The identifier of the resource.
        type: string
      location:
        description: The location of the resource.
        type: string
      name:
        description: The name of the resource.
        type: string
      properties:
        $ref: "#/definitions/ArtifactProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
      tags:
        additionalProperties:
          type: string
        description: The tags of the resource.
        type: object
      type:
        description: The type of the resource.
        type: string
    type: object
    x-ms-azure-resource: true
  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
  ArtifactInstallProperties:
    description: Properties of an artifact.
    properties:
      artifactId:
        description: The artifact's identifier.
        type: string
      parameters:
        description: The parameters of the artifact.
        items:
          $ref: "#/definitions/ArtifactParameterProperties"
        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
  ArtifactProperties:
    description: Properties of an artifact.
    properties:
      description:
        description: The description of the artifact.
        type: string
      filePath:
        description: The file path of the artifact.
        type: string
      icon:
        description: The icon of the artifact.
        type: string
      parameters:
        $ref: "#/definitions/Object"
        description: The parameters of the artifact.
      targetOsType:
        description: Gets or sets the type of the target os.
        type: string
      title:
        description: The title of the artifact.
        type: string
    type: object
  ArtifactSource:
    description: Properties of an artifact source.
    properties:
      id:
        description: The identifier of the resource.
        type: string
      location:
        description: The location of the resource.
        type: string
      name:
        description: The name of the resource.
        type: string
      properties:
        $ref: "#/definitions/ArtifactSourceProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
      tags:
        additionalProperties:
          type: string
        description: The tags of the resource.
        type: object
      type:
        description: The type of the resource.
        type: string
    type: object
    x-ms-azure-resource: true
  ArtifactSourceProperties:
    description: Properties of an artifact source.
    properties:
      branchRef:
        description: The branch reference of the artifact source.
        type: string
      displayName:
        description: The display name of the artifact source.
        type: string
      folderPath:
        description: The folder path of the artifact source.
        type: string
      provisioningState:
        description: The provisioning status of the resource.
        type: string
      securityToken:
        description: The security token of the artifact source.
        type: string
      sourceType:
        description: The type of the artifact source.
        enum:
          - VsoGit
          - GitHub
        type: string
        x-ms-enum:
          modelAsString: true
          name: SourceControlType
      status:
        description: The status of the artifact source.
        enum:
          - Enabled
          - Disabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: EnableStatus
      uri:
        description: The URI of the artifact source.
        type: string
    type: object
  CloudError:
    properties:
      error:
        $ref: "#/definitions/CloudErrorBody"
    type: object
    x-ms-external: true
  CloudErrorBody:
    properties:
      code:
        type: string
      details:
        items:
          $ref: "#/definitions/CloudErrorBody"
        type: array
      message:
        type: string
      target:
        type: string
    type: object
    x-ms-external: true
  Cost:
    description: A cost item.
    properties:
      id:
        description: The identifier of the resource.
        type: string
      location:
        description: The location of the resource.
        type: string
      name:
        description: The name of the resource.
        type: string
      properties:
        $ref: "#/definitions/CostProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
      tags:
        additionalProperties:
          type: string
        description: The tags of the resource.
        type: object
      type:
        description: The type of the resource.
        type: string
    type: object
    x-ms-azure-resource: true
  CostInsight:
    properties:
      id:
        description: The identifier of the resource.
        type: string
      location:
        description: The location of the resource.
        type: string
      name:
        description: The name of the resource.
        type: string
      properties:
        $ref: "#/definitions/CostInsightProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
      tags:
        additionalProperties:
          type: string
        description: The tags of the resource.
        type: object
      type:
        description: The type of the resource.
        type: string
    type: object
    x-ms-azure-resource: true
  CostInsightProperties:
    properties:
      currencyCode:
        type: string
      provisioningState:
        description: The provisioning status of the resource.
        type: string
      vmCosts:
        items:
          $ref: "#/definitions/VMCostProperties"
        type: array
    type: object
  CostPerDayProperties:
    description: The per-day properties of a cost item.
    properties:
      cost:
        description: The cost 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: CostPropertyType
      date:
        description: The date of the cost item.
        format: date-time
        type: string
    type: object
  CostProperties:
    description: Properties of a cost item.
    properties:
      costs:
        description: The per-day costs items of the cost.
        items:
          $ref: "#/definitions/CostPerDayProperties"
        type: array
      currencyCode:
        description: The currency code of the cost.
        type: string
    type: object
  CustomImage:
    description: A custom image.
    properties:
      id:
        description: The identifier of the resource.
        type: string
      location:
        description: The location of the resource.
        type: string
      name:
        description: The name of the resource.
        type: string
      properties:
        $ref: "#/definitions/CustomImageProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
      tags:
        additionalProperties:
          type: string
        description: The tags of the resource.
        type: object
      type:
        description: The type of the resource.
        type: string
    type: object
    x-ms-azure-resource: true
  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
        type: string
      description:
        description: The description of the custom image.
        type: string
      osType:
        description: The OS type of the custom image.
        enum:
          - Windows
          - Linux
          - None
        type: string
        x-ms-enum:
          modelAsString: true
          name: CustomImageOsType
      provisioningState:
        description: The provisioning status of the resource.
        type: string
      vhd:
        $ref: "#/definitions/CustomImagePropertiesCustom"
        description: The VHD from which the image is to be created.
      vm:
        $ref: "#/definitions/CustomImagePropertiesFromVm"
        description: ""
    type: object
  CustomImagePropertiesCustom:
    description: Properties for creating a custom image from a VHD.
    properties:
      imageName:
        description: The image name.
        type: string
      sysPrep:
        description: Indicates whether sysprep has been run on the VHD.
        type: boolean
    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
      sysPrep:
        description: Indicates whether sysprep has been run on the VHD.
        type: boolean
      windowsOsInfo:
        $ref: "#/definitions/WindowsOsInfo"
        description: The Windows OS information of the VM.
    type: object
  DayDetails:
    description: Properties of a daily schedule.
    properties:
      time:
        type: string
    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
      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
  Formula:
    description: A formula.
    properties:
      id:
        description: The identifier of the resource.
        type: string
      location:
        description: The location of the resource.
        type: string
      name:
        description: The name of the resource.
        type: string
      properties:
        $ref: "#/definitions/FormulaProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
      tags:
        additionalProperties:
          type: string
        description: The tags of the resource.
        type: object
      type:
        description: The type of the resource.
        type: string
    type: object
    x-ms-azure-resource: true
  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
        type: string
      description:
        description: The description of the formula.
        type: string
      formulaContent:
        $ref: "#/definitions/LabVirtualMachine"
        description: The content of the formula.
      osType:
        description: The OS type of the formula.
        type: string
      provisioningState:
        description: The provisioning status of the resource.
        type: string
      vm:
        $ref: "#/definitions/FormulaPropertiesFromVm"
        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
  GalleryImage:
    description: A gallery image.
    properties:
      id:
        description: The identifier of the resource.
        type: string
      location:
        description: The location of the resource.
        type: string
      name:
        description: The name of the resource.
        type: string
      properties:
        $ref: "#/definitions/GalleryImageProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
      tags:
        additionalProperties:
          type: string
        description: The tags of the resource.
        type: object
      type:
        description: The type of the resource.
        type: string
    type: object
    x-ms-azure-resource: true
  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
        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.
    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
  GenerateArmTemplateRequest:
    description: Parameters for generating an ARM template for deploying artifacts.
    properties:
      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
  Lab:
    description: A lab.
    properties:
      id:
        description: The identifier of the resource.
        type: string
      location:
        description: The location of the resource.
        type: string
      name:
        description: The name of the resource.
        type: string
      properties:
        $ref: "#/definitions/LabProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
      tags:
        additionalProperties:
          type: string
        description: The tags of the resource.
        type: object
      type:
        description: The type of the resource.
        type: string
    type: object
    x-ms-azure-resource: true
  LabProperties:
    description: Properties of a lab.
    properties:
      artifactsStorageAccount:
        description: The artifact storage account of the lab.
        type: string
      createdDate:
        description: The creation date of the lab.
        format: date-time
        type: string
      defaultStorageAccount:
        description: The lab's default storage account.
        type: string
      defaultVirtualNetworkId:
        description: The default virtual network identifier of the lab.
        type: string
      labStorageType:
        description: The type of the lab storage.
        enum:
          - Standard
          - Premium
        type: string
        x-ms-enum:
          modelAsString: true
          name: LabStorageType
      provisioningState:
        description: The provisioning status of the resource.
        type: string
      storageAccounts:
        description: The storage accounts of the lab.
        items:
          type: string
        type: array
      vaultName:
        description: The name of the key vault of the lab.
        type: string
    type: object
  LabVhd:
    description: Properties of a VHD in the lab.
    properties:
      id:
        description: The absolute URI of the VHD.
        type: string
    type: object
  LabVirtualMachine:
    description: A virtual machine.
    properties:
      id:
        description: The identifier of the resource.
        type: string
      location:
        description: The location of the resource.
        type: string
      name:
        description: The name of the resource.
        type: string
      properties:
        $ref: "#/definitions/LabVirtualMachineProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
      tags:
        additionalProperties:
          type: string
        description: The tags of the resource.
        type: object
      type:
        description: The type of the resource.
        type: string
    type: object
    x-ms-azure-resource: true
  LabVirtualMachineProperties:
    description: Properties of a virtual machine.
    properties:
      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
      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
      customImageId:
        description: The custom image identifier of the virtual machine.
        type: string
      disallowPublicIpAddress:
        description: Indicates whether the virtual machine is to be created without a public IP address.
        type: boolean
      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: A value indicating 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
      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
      password:
        description: The password of the virtual machine administrator.
        type: string
      provisioningState:
        description: The provisioning status of the resource.
        type: string
      size:
        description: The size of the virtual machine.
        type: string
      sshKey:
        description: The SSH key of the virtual machine administrator.
        type: string
      userName:
        description: The user name of the virtual machine.
        type: string
    type: object
  LinuxOsInfo:
    description: Information about a Linux OS.
    properties:
      linuxOsState:
        description: The state of the Linux OS.
        enum:
          - NonDeprovisioned
          - DeprovisionRequested
          - DeprovisionApplied
        type: string
        x-ms-enum:
          modelAsString: true
          name: LinuxOsState
    type: object
  Object:
    properties: {}
    type: object
  ParameterInfo:
    properties:
      name:
        type: string
      value:
        type: string
    type: object
  Policy:
    description: A Policy.
    properties:
      id:
        description: The identifier of the resource.
        type: string
      location:
        description: The location of the resource.
        type: string
      name:
        description: The name of the resource.
        type: string
      properties:
        $ref: "#/definitions/PolicyProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
      tags:
        additionalProperties:
          type: string
        description: The tags of the resource.
        type: object
      type:
        description: The type of the resource.
        type: string
    type: object
    x-ms-azure-resource: true
  PolicyProperties:
    description: Properties of a Policy.
    properties:
      description:
        description: The description of the policy.
        type: string
      evaluatorType:
        description: The evaluator type of the policy.
        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.
        enum:
          - UserOwnedLabVmCount
          - LabVmCount
          - LabVmSize
          - GalleryImage
          - UserOwnedLabVmCountInSubnet
        type: string
        x-ms-enum:
          modelAsString: true
          name: PolicyFactName
      provisioningState:
        description: The provisioning status of the resource.
        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.
        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
  "ResponseWithContinuation[ArtifactSource]":
    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
  "ResponseWithContinuation[Artifact]":
    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
  "ResponseWithContinuation[CostInsight]":
    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/CostInsight"
        type: array
    type: object
  "ResponseWithContinuation[Cost]":
    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/Cost"
        type: array
    type: object
  "ResponseWithContinuation[CustomImage]":
    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
  "ResponseWithContinuation[Formula]":
    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
  "ResponseWithContinuation[GalleryImage]":
    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
  "ResponseWithContinuation[LabVhd]":
    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
  "ResponseWithContinuation[LabVirtualMachine]":
    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
  "ResponseWithContinuation[Lab]":
    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
  "ResponseWithContinuation[Policy]":
    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
  "ResponseWithContinuation[Schedule]":
    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
  "ResponseWithContinuation[VirtualNetwork]":
    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
  Schedule:
    description: A schedule.
    properties:
      id:
        description: The identifier of the resource.
        type: string
      location:
        description: The location of the resource.
        type: string
      name:
        description: The name of the resource.
        type: string
      properties:
        $ref: "#/definitions/ScheduleProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
      tags:
        additionalProperties:
          type: string
        description: The tags of the resource.
        type: object
      type:
        description: The type of the resource.
        type: string
    type: object
    x-ms-azure-resource: true
  ScheduleProperties:
    description: Properties of a schedule.
    properties:
      dailyRecurrence:
        $ref: "#/definitions/DayDetails"
        description: The daily recurrence of the schedule.
      hourlyRecurrence:
        $ref: "#/definitions/HourDetails"
        description: The hourly recurrence of the schedule.
      provisioningState:
        description: The provisioning status of the resource.
        type: string
      status:
        description: The status of the schedule.
        enum:
          - Enabled
          - Disabled
        type: string
        x-ms-enum:
          modelAsString: true
          name: EnableStatus
      taskType:
        description: The task type of the schedule.
        enum:
          - LabVmsShutdownTask
          - LabVmsStartupTask
          - LabBillingTask
        type: string
        x-ms-enum:
          modelAsString: true
          name: TaskType
      timeZoneId:
        description: The time zone id.
        type: string
      weeklyRecurrence:
        $ref: "#/definitions/WeekDetails"
        description: The weekly recurrence of the schedule.
    type: object
  Subnet:
    properties:
      allowPublicIp:
        enum:
          - Default
          - Deny
          - Allow
        type: string
        x-ms-enum:
          modelAsString: true
          name: UsagePermissionType
      labSubnetName:
        type: string
      resourceId:
        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 identifier of the subnet.
        type: string
      useInVmCreationPermission:
        description: Indicates whether this subnet can be used during virtual machine creation.
        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.
        enum:
          - Default
          - Deny
          - Allow
        type: string
        x-ms-enum:
          modelAsString: true
          name: UsagePermissionType
    type: object
  SubscriptionNotification:
    properties:
      properties:
        $ref: "#/definitions/SubscriptionNotificationProperties"
      registrationDate:
        type: string
      state:
        enum:
          - NotDefined
          - Registered
          - Unregistered
          - Warned
          - Suspended
          - Deleted
        type: string
        x-ms-enum:
          modelAsString: true
          name: SubscriptionNotificationState
    type: object
  SubscriptionNotificationProperties:
    properties:
      tenantId:
        type: string
    type: object
  VMCostProperties:
    properties:
      cost:
        format: double
        type: number
      name:
        type: string
      resourceGroupName:
        type: string
    type: object
  VirtualNetwork:
    description: A virtual network.
    properties:
      id:
        description: The identifier of the resource.
        type: string
      location:
        description: The location of the resource.
        type: string
      name:
        description: The name of the resource.
        type: string
      properties:
        $ref: "#/definitions/VirtualNetworkProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
      tags:
        additionalProperties:
          type: string
        description: The tags of the resource.
        type: object
      type:
        description: The type of the resource.
        type: string
    type: object
    x-ms-azure-resource: true
  VirtualNetworkProperties:
    description: Properties of a virtual network.
    properties:
      allowedSubnets:
        description: The allowed subnets of the virtual network.
        items:
          $ref: "#/definitions/Subnet"
        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
      provisioningState:
        description: The provisioning status of the resource.
        type: string
      subnetOverrides:
        description: The subnet overrides of the virtual network.
        items:
          $ref: "#/definitions/SubnetOverride"
        type: array
    type: object
  WeekDetails:
    description: Properties of a weekly schedule.
    properties:
      time:
        description: The time of the day.
        type: string
      weekdays:
        description: The days of the week.
        items:
          type: string
        type: array
    type: object
  WindowsOsInfo:
    description: Information about a Windows OS.
    properties:
      windowsOsState:
        description: The state of the Windows OS.
        enum:
          - NonSysprepped
          - SysprepRequested
          - SysprepApplied
        type: string
        x-ms-enum:
          modelAsString: true
          name: WindowsOsState
    type: object
