swagger: "2.0"
schemes:
  - https
host: management.azure.com
info:
  description: The Managed Labs Client.
  title: ManagedLabsClient
  version: 2018-10-15
  x-apisguru-categories:
    - cloud
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/https_assets.onestore.ms_cdnfiles_onestorerolling-1606-01000_shell_v3_images_logo_microsoft.png
  x-origin:
    - format: swagger
      url: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/labservices/resource-manager/Microsoft.LabServices/stable/2018-10-15/ML.json
      version: "2.0"
  x-providerName: azure.com
  x-serviceName: labservices-ML
  x-tags:
    - Azure
    - Microsoft
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  azure_auth:
    authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize
    description: OAuth2 Implicit Grant
    flow: implicit
    scopes:
      user_impersonation: Access Microsoft Azure
    type: oauth2
security:
  - azure_auth:
      - user_impersonation
parameters:
  api-version:
    default: 2018-10-15
    description: Client API version.
    in: query
    name: api-version
    required: true
    type: string
  locationName:
    description: The name of the location.
    in: path
    name: locationName
    required: true
    type: string
    x-ms-parameter-location: method
  resourceGroupName:
    description: The name of the resource group.
    in: path
    name: resourceGroupName
    required: true
    type: string
    x-ms-parameter-location: method
  subscriptionId:
    description: The subscription ID.
    in: path
    name: subscriptionId
    required: true
    type: string
paths:
  /providers/Microsoft.LabServices/operations:
    get:
      description: Result of the request to list REST API operations
      operationId: ProviderOperations_List
      parameters:
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: Success
          schema:
            $ref: "#/definitions/ProviderOperationResult"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - ProviderOperations
      x-ms-pageable:
        nextLinkName: nextLink
  "/providers/Microsoft.LabServices/users/{userName}/getEnvironment":
    post:
      description: Gets the virtual machine details
      operationId: GlobalUsers_GetEnvironment
      parameters:
        - description: The name of the user.
          in: path
          name: userName
          required: true
          type: string
        - description: Represents payload for any Environment operations like get, start, stop, connect
          in: body
          name: environmentOperationsPayload
          required: true
          schema:
            $ref: "#/definitions/EnvironmentOperationsPayload"
        - description: "Specify the $expand query. Example: 'properties($expand=environment)'"
          in: query
          name: $expand
          required: false
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/GetEnvironmentResponse"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - GlobalUsers
  "/providers/Microsoft.LabServices/users/{userName}/getOperationBatchStatus":
    post:
      description: Get batch operation status
      operationId: GlobalUsers_GetOperationBatchStatus
      parameters:
        - description: The name of the user.
          in: path
          name: userName
          required: true
          type: string
        - description: Payload to get the status of an operation
          in: body
          name: operationBatchStatusPayload
          required: true
          schema:
            $ref: "#/definitions/OperationBatchStatusPayload"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/OperationBatchStatusResponse"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - GlobalUsers
  "/providers/Microsoft.LabServices/users/{userName}/getOperationStatus":
    post:
      description: Gets the status of long running operation
      operationId: GlobalUsers_GetOperationStatus
      parameters:
        - description: The name of the user.
          in: path
          name: userName
          required: true
          type: string
        - description: Payload to get the status of an operation
          in: body
          name: operationStatusPayload
          required: true
          schema:
            $ref: "#/definitions/OperationStatusPayload"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/OperationStatusResponse"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - GlobalUsers
  "/providers/Microsoft.LabServices/users/{userName}/getPersonalPreferences":
    post:
      description: Get personal preferences for a user
      operationId: GlobalUsers_GetPersonalPreferences
      parameters:
        - description: The name of the user.
          in: path
          name: userName
          required: true
          type: string
        - description: Represents payload for any Environment operations like get, start, stop, connect
          in: body
          name: personalPreferencesOperationsPayload
          required: true
          schema:
            $ref: "#/definitions/PersonalPreferencesOperationsPayload"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/GetPersonalPreferencesResponse"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - GlobalUsers
  "/providers/Microsoft.LabServices/users/{userName}/listEnvironments":
    post:
      description: List Environments for the user
      operationId: GlobalUsers_ListEnvironments
      parameters:
        - description: The name of the user.
          in: path
          name: userName
          required: true
          type: string
        - description: Represents the payload to list environments owned by a user
          in: body
          name: listEnvironmentsPayload
          required: true
          schema:
            $ref: "#/definitions/ListEnvironmentsPayload"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ListEnvironmentsResponse"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - GlobalUsers
  "/providers/Microsoft.LabServices/users/{userName}/listLabs":
    post:
      description: List labs for the user.
      operationId: GlobalUsers_ListLabs
      parameters:
        - description: The name of the user.
          in: path
          name: userName
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ListLabsResponse"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - GlobalUsers
  "/providers/Microsoft.LabServices/users/{userName}/register":
    post:
      description: Register a user to a managed lab
      operationId: GlobalUsers_Register
      parameters:
        - description: The name of the user.
          in: path
          name: userName
          required: true
          type: string
        - description: Represents payload for Register action.
          in: body
          name: registerPayload
          required: true
          schema:
            $ref: "#/definitions/RegisterPayload"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - GlobalUsers
  "/providers/Microsoft.LabServices/users/{userName}/resetPassword":
    post:
      description: Resets the user password on an environment This operation can take a while to complete
      operationId: GlobalUsers_ResetPassword
      parameters:
        - description: The name of the user.
          in: path
          name: userName
          required: true
          type: string
        - description: Represents the payload for resetting passwords.
          in: body
          name: resetPasswordPayload
          required: true
          schema:
            $ref: "#/definitions/ResetPasswordPayload"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - GlobalUsers
      x-ms-long-running-operation: true
  "/providers/Microsoft.LabServices/users/{userName}/startEnvironment":
    post:
      description: Starts an environment by starting all resources inside the environment. This operation can take a while to complete
      operationId: GlobalUsers_StartEnvironment
      parameters:
        - description: The name of the user.
          in: path
          name: userName
          required: true
          type: string
        - description: Represents payload for any Environment operations like get, start, stop, connect
          in: body
          name: environmentOperationsPayload
          required: true
          schema:
            $ref: "#/definitions/EnvironmentOperationsPayload"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - GlobalUsers
      x-ms-long-running-operation: true
  "/providers/Microsoft.LabServices/users/{userName}/stopEnvironment":
    post:
      description: Stops an environment by stopping all resources inside the environment This operation can take a while to complete
      operationId: GlobalUsers_StopEnvironment
      parameters:
        - description: The name of the user.
          in: path
          name: userName
          required: true
          type: string
        - description: Represents payload for any Environment operations like get, start, stop, connect
          in: body
          name: environmentOperationsPayload
          required: true
          schema:
            $ref: "#/definitions/EnvironmentOperationsPayload"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - GlobalUsers
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/providers/Microsoft.LabServices/labaccounts":
    get:
      description: List lab accounts in a subscription.
      operationId: LabAccounts_ListBySubscription
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: "Specify the $expand query. Example: 'properties($expand=sizeConfiguration)'"
          in: query
          name: $expand
          required: false
          type: string
        - description: The filter to apply to the operation.
          in: query
          name: $filter
          required: false
          type: string
        - description: The maximum number of resources to return from the operation.
          format: int32
          in: query
          name: $top
          required: false
          type: integer
        - description: The ordering expression for the results, using OData notation.
          in: query
          name: $orderby
          required: false
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ResponseWithContinuation[LabAccount]"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - LabAccounts
      x-ms-odata: "#/definitions/LabAccount"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/providers/Microsoft.LabServices/locations/{locationName}/operations/{operationName}":
    get:
      description: Get operation
      operationId: Operations_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/locationName"
        - description: The name of the operation.
          in: path
          name: operationName
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/OperationResult"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - Operations
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts":
    get:
      description: List lab accounts in a resource group.
      operationId: LabAccounts_ListByResourceGroup
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: "Specify the $expand query. Example: 'properties($expand=sizeConfiguration)'"
          in: query
          name: $expand
          required: false
          type: string
        - description: The filter to apply to the operation.
          in: query
          name: $filter
          required: false
          type: string
        - description: The maximum number of resources to return from the operation.
          format: int32
          in: query
          name: $top
          required: false
          type: integer
        - description: The ordering expression for the results, using OData notation.
          in: query
          name: $orderby
          required: false
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ResponseWithContinuation[LabAccount]"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - LabAccounts
      x-ms-odata: "#/definitions/LabAccount"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}":
    delete:
      description: Delete lab account. This operation can take a while to complete
      operationId: LabAccounts_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "202":
          description: Accepted
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - LabAccounts
      x-ms-long-running-operation: true
    get:
      description: Get lab account
      operationId: LabAccounts_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($expand=sizeConfiguration)'"
          in: query
          name: $expand
          required: false
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/LabAccount"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - LabAccounts
    patch:
      description: Modify properties of lab accounts.
      operationId: LabAccounts_Update
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: Represents a lab account.
          in: body
          name: labAccount
          required: true
          schema:
            $ref: "#/definitions/LabAccountFragment"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/LabAccount"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - LabAccounts
    put:
      description: Create or replace an existing Lab Account.
      operationId: LabAccounts_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: Represents a lab account.
          in: body
          name: labAccount
          required: true
          schema:
            $ref: "#/definitions/LabAccount"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/LabAccount"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/LabAccount"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - LabAccounts
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/createLab":
    post:
      description: Create a lab in a lab account.
      operationId: LabAccounts_CreateLab
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: Properties for creating a managed lab and a default environment setting
          in: body
          name: createLabProperties
          required: true
          schema:
            $ref: "#/definitions/CreateLabProperties"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - LabAccounts
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/galleryimages":
    get:
      description: List gallery images in a given lab account.
      operationId: GalleryImages_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=author)'"
          in: query
          name: $expand
          required: false
          type: string
        - description: The filter to apply to the operation.
          in: query
          name: $filter
          required: false
          type: string
        - description: The maximum number of resources to return from the operation.
          format: int32
          in: query
          name: $top
          required: false
          type: integer
        - description: The ordering expression for the results, using OData notation.
          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:
        - azure_auth:
            - user_impersonation
      tags:
        - GalleryImages
      x-ms-odata: "#/definitions/GalleryImage"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/galleryimages/{galleryImageName}":
    delete:
      description: Delete gallery image.
      operationId: GalleryImages_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the gallery Image.
          in: path
          name: galleryImageName
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - GalleryImages
    get:
      description: Get gallery image
      operationId: GalleryImages_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the gallery Image.
          in: path
          name: galleryImageName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=author)'"
          in: query
          name: $expand
          required: false
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/GalleryImage"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - GalleryImages
    patch:
      description: Modify properties of gallery images.
      operationId: GalleryImages_Update
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the gallery Image.
          in: path
          name: galleryImageName
          required: true
          type: string
        - description: Represents an image from the Azure Marketplace
          in: body
          name: galleryImage
          required: true
          schema:
            $ref: "#/definitions/GalleryImageFragment"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/GalleryImage"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - GalleryImages
    put:
      description: Create or replace an existing Gallery Image.
      operationId: GalleryImages_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the gallery Image.
          in: path
          name: galleryImageName
          required: true
          type: string
        - description: Represents an image from the Azure Marketplace
          in: body
          name: galleryImage
          required: true
          schema:
            $ref: "#/definitions/GalleryImage"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/GalleryImage"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/GalleryImage"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - GalleryImages
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/getRegionalAvailability":
    post:
      description: Get regional availability information for each size category configured under a lab account
      operationId: LabAccounts_GetRegionalAvailability
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/GetRegionalAvailabilityResponse"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - LabAccounts
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs":
    get:
      description: List labs in a given lab account.
      operationId: Labs_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=maxUsersInLab)'"
          in: query
          name: $expand
          required: false
          type: string
        - description: The filter to apply to the operation.
          in: query
          name: $filter
          required: false
          type: string
        - description: The maximum number of resources to return from the operation.
          format: int32
          in: query
          name: $top
          required: false
          type: integer
        - description: The ordering expression for the results, using OData notation.
          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:
        - azure_auth:
            - user_impersonation
      tags:
        - Labs
      x-ms-examples:
        Labs_List:
          parameters:
            api-version: 2018-10-15
            labAccountName: "{devtestlab-name}"
            resourceGroupName: myResourceGroup
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/{subscription-id}/resourcegroups/myResourceGroup/providers/microsoft.labservices/labaccounts/{devtestlab-name}/labs/{labName}
                    location: australiaeast
                    name: "{labName}"
                    properties:
                      createdByObjectId: 11111111-1111-1111-1111-111111111111
                      createdByUserPrincipalName: YourNameHere@domain.com
                      createdDate: 2018-10-09T21:05:25.0408858+00:00
                      invitationCode: "{invitationCode}"
                      latestOperationResult: {}
                      maxUsersInLab: 1
                      provisioningState: Succeeded
                      uniqueIdentifier: 22222222-2222-2222-2222-222222222222
                      userAccessMode: Restricted
                      userQuota: 100
                    tags:
                      Name: CreatedDate
                      Value: 8/30/118 9:37:32 PM
                    type: Microsoft.LabServices/labAccounts/labs
                  - id: /subscriptions/{subscription-id}/resourcegroups/myResourceGroup/providers/microsoft.labservices/labaccounts/{devtestlab-name}/labs/{labName}
                    location: australiaeast
                    name: "{labName}"
                    properties:
                      createdByObjectId: 11111111-1111-1111-1111-111111111111
                      createdByUserPrincipalName: YourNameHere@domain.com
                      createdDate: 2018-10-09T21:29:47.2453342+00:00
                      invitationCode: "{invitationCode}"
                      latestOperationResult: {}
                      maxUsersInLab: 1
                      provisioningState: Succeeded
                      uniqueIdentifier: 22222222-2222-2222-2222-222222222222
                      userAccessMode: Restricted
                      userQuota: 100
                    tags:
                      Name: CreatedDate
                      Value: 8/30/118 9:37:36 PM
                    type: Microsoft.LabServices/labAccounts/labs
      x-ms-odata: "#/definitions/Lab"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}":
    delete:
      description: Delete lab. This operation can take a while to complete
      operationId: Labs_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "202":
          description: Accepted
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - Labs
      x-ms-long-running-operation: true
    get:
      description: Get lab
      operationId: Labs_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=maxUsersInLab)'"
          in: query
          name: $expand
          required: false
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Lab"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - Labs
    patch:
      description: Modify properties of labs.
      operationId: Labs_Update
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: Represents a lab.
          in: body
          name: lab
          required: true
          schema:
            $ref: "#/definitions/LabFragment"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Lab"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - Labs
    put:
      description: Create or replace an existing Lab.
      operationId: Labs_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: Represents a lab.
          in: body
          name: lab
          required: true
          schema:
            $ref: "#/definitions/Lab"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Lab"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/Lab"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - Labs
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/addUsers":
    post:
      description: Add users to a lab
      operationId: Labs_AddUsers
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: Payload for Add Users operation on a Lab.
          in: body
          name: addUsersPayload
          required: true
          schema:
            $ref: "#/definitions/AddUsersPayload"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - Labs
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/environmentsettings":
    get:
      description: List environment setting in a given lab.
      operationId: EnvironmentSettings_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=publishingState)'"
          in: query
          name: $expand
          required: false
          type: string
        - description: The filter to apply to the operation.
          in: query
          name: $filter
          required: false
          type: string
        - description: The maximum number of resources to return from the operation.
          format: int32
          in: query
          name: $top
          required: false
          type: integer
        - description: The ordering expression for the results, using OData notation.
          in: query
          name: $orderby
          required: false
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ResponseWithContinuation[EnvironmentSetting]"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - EnvironmentSettings
      x-ms-odata: "#/definitions/EnvironmentSetting"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/environmentsettings/{environmentSettingName}":
    delete:
      description: Delete environment setting. This operation can take a while to complete
      operationId: EnvironmentSettings_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the environment Setting.
          in: path
          name: environmentSettingName
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "202":
          description: Accepted
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - EnvironmentSettings
      x-ms-long-running-operation: true
    get:
      description: Get environment setting
      operationId: EnvironmentSettings_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the environment Setting.
          in: path
          name: environmentSettingName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=publishingState)'"
          in: query
          name: $expand
          required: false
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/EnvironmentSetting"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - EnvironmentSettings
    patch:
      description: Modify properties of environment setting.
      operationId: EnvironmentSettings_Update
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the environment Setting.
          in: path
          name: environmentSettingName
          required: true
          type: string
        - description: Represents settings of an environment, from which environment instances would be created
          in: body
          name: environmentSetting
          required: true
          schema:
            $ref: "#/definitions/EnvironmentSettingFragment"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/EnvironmentSetting"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - EnvironmentSettings
    put:
      description: Create or replace an existing Environment Setting. This operation can take a while to complete
      operationId: EnvironmentSettings_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the environment Setting.
          in: path
          name: environmentSettingName
          required: true
          type: string
        - description: Represents settings of an environment, from which environment instances would be created
          in: body
          name: environmentSetting
          required: true
          schema:
            $ref: "#/definitions/EnvironmentSetting"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/EnvironmentSetting"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/EnvironmentSetting"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - EnvironmentSettings
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/environmentsettings/{environmentSettingName}/claimAny":
    post:
      description: Claims a random environment for a user in an environment settings
      operationId: EnvironmentSettings_ClaimAny
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the environment Setting.
          in: path
          name: environmentSettingName
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - EnvironmentSettings
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/environmentsettings/{environmentSettingName}/environments":
    get:
      description: List environments in a given environment setting.
      operationId: Environments_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the environment Setting.
          in: path
          name: environmentSettingName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($expand=networkInterface)'"
          in: query
          name: $expand
          required: false
          type: string
        - description: The filter to apply to the operation.
          in: query
          name: $filter
          required: false
          type: string
        - description: The maximum number of resources to return from the operation.
          format: int32
          in: query
          name: $top
          required: false
          type: integer
        - description: The ordering expression for the results, using OData notation.
          in: query
          name: $orderby
          required: false
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ResponseWithContinuation[Environment]"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - Environments
      x-ms-odata: "#/definitions/Environment"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/environmentsettings/{environmentSettingName}/environments/{environmentName}":
    delete:
      description: Delete environment. This operation can take a while to complete
      operationId: Environments_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the environment Setting.
          in: path
          name: environmentSettingName
          required: true
          type: string
        - description: The name of the environment.
          in: path
          name: environmentName
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "202":
          description: Accepted
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - Environments
      x-ms-long-running-operation: true
    get:
      description: Get environment
      operationId: Environments_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the environment Setting.
          in: path
          name: environmentSettingName
          required: true
          type: string
        - description: The name of the environment.
          in: path
          name: environmentName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($expand=networkInterface)'"
          in: query
          name: $expand
          required: false
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Environment"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - Environments
    patch:
      description: Modify properties of environments.
      operationId: Environments_Update
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the environment Setting.
          in: path
          name: environmentSettingName
          required: true
          type: string
        - description: The name of the environment.
          in: path
          name: environmentName
          required: true
          type: string
        - description: Represents an environment instance
          in: body
          name: environment
          required: true
          schema:
            $ref: "#/definitions/EnvironmentFragment"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Environment"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - Environments
    put:
      description: Create or replace an existing Environment.
      operationId: Environments_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the environment Setting.
          in: path
          name: environmentSettingName
          required: true
          type: string
        - description: The name of the environment.
          in: path
          name: environmentName
          required: true
          type: string
        - description: Represents an environment instance
          in: body
          name: environment
          required: true
          schema:
            $ref: "#/definitions/Environment"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Environment"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/Environment"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - Environments
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/environmentsettings/{environmentSettingName}/environments/{environmentName}/claim":
    post:
      description: Claims the environment and assigns it to the user
      operationId: Environments_Claim
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the environment Setting.
          in: path
          name: environmentSettingName
          required: true
          type: string
        - description: The name of the environment.
          in: path
          name: environmentName
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - Environments
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/environmentsettings/{environmentSettingName}/environments/{environmentName}/resetPassword":
    post:
      description: Resets the user password on an environment This operation can take a while to complete
      operationId: Environments_ResetPassword
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the environment Setting.
          in: path
          name: environmentSettingName
          required: true
          type: string
        - description: The name of the environment.
          in: path
          name: environmentName
          required: true
          type: string
        - description: Represents the payload for resetting passwords.
          in: body
          name: resetPasswordPayload
          required: true
          schema:
            $ref: "#/definitions/ResetPasswordPayload"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - Environments
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/environmentsettings/{environmentSettingName}/environments/{environmentName}/start":
    post:
      description: Starts an environment by starting all resources inside the environment. This operation can take a while to complete
      operationId: Environments_Start
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the environment Setting.
          in: path
          name: environmentSettingName
          required: true
          type: string
        - description: The name of the environment.
          in: path
          name: environmentName
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - Environments
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/environmentsettings/{environmentSettingName}/environments/{environmentName}/stop":
    post:
      description: Stops an environment by stopping all resources inside the environment This operation can take a while to complete
      operationId: Environments_Stop
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the environment Setting.
          in: path
          name: environmentSettingName
          required: true
          type: string
        - description: The name of the environment.
          in: path
          name: environmentName
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - Environments
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/environmentsettings/{environmentSettingName}/publish":
    post:
      description: Provisions/deprovisions required resources for an environment setting based on current state of the lab/environment setting.
      operationId: EnvironmentSettings_Publish
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the environment Setting.
          in: path
          name: environmentSettingName
          required: true
          type: string
        - description: Payload for Publish operation on EnvironmentSetting.
          in: body
          name: publishPayload
          required: true
          schema:
            $ref: "#/definitions/PublishPayload"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - EnvironmentSettings
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/environmentsettings/{environmentSettingName}/start":
    post:
      description: Starts a template by starting all resources inside the template. This operation can take a while to complete
      operationId: EnvironmentSettings_Start
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the environment Setting.
          in: path
          name: environmentSettingName
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - EnvironmentSettings
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/environmentsettings/{environmentSettingName}/stop":
    post:
      description: Starts a template by starting all resources inside the template. This operation can take a while to complete
      operationId: EnvironmentSettings_Stop
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the environment Setting.
          in: path
          name: environmentSettingName
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        "202":
          description: Accepted
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - EnvironmentSettings
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/register":
    post:
      description: Register to managed lab.
      operationId: Labs_Register
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - Labs
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/users":
    get:
      description: List users in a given lab.
      operationId: Users_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=email)'"
          in: query
          name: $expand
          required: false
          type: string
        - description: The filter to apply to the operation.
          in: query
          name: $filter
          required: false
          type: string
        - description: The maximum number of resources to return from the operation.
          format: int32
          in: query
          name: $top
          required: false
          type: integer
        - description: The ordering expression for the results, using OData notation.
          in: query
          name: $orderby
          required: false
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ResponseWithContinuation[User]"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - Users
      x-ms-odata: "#/definitions/User"
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/users/{userName}":
    delete:
      description: Delete user. This operation can take a while to complete
      operationId: Users_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user.
          in: path
          name: userName
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "202":
          description: Accepted
        "204":
          description: No Content
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - Users
      x-ms-long-running-operation: true
    get:
      description: Get user
      operationId: Users_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user.
          in: path
          name: userName
          required: true
          type: string
        - description: "Specify the $expand query. Example: 'properties($select=email)'"
          in: query
          name: $expand
          required: false
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/User"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - Users
    patch:
      description: Modify properties of users.
      operationId: Users_Update
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user.
          in: path
          name: userName
          required: true
          type: string
        - description: The User registered to a lab
          in: body
          name: user
          required: true
          schema:
            $ref: "#/definitions/UserFragment"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/User"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - Users
    put:
      description: Create or replace an existing User.
      operationId: Users_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - description: The name of the lab Account.
          in: path
          name: labAccountName
          required: true
          type: string
        - description: The name of the lab.
          in: path
          name: labName
          required: true
          type: string
        - description: The name of the user.
          in: path
          name: userName
          required: true
          type: string
        - description: The User registered to a lab
          in: body
          name: user
          required: true
          schema:
            $ref: "#/definitions/User"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/User"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/User"
        default:
          description: BadRequest
          schema:
            $ref: "#/definitions/CloudError"
      security:
        - azure_auth:
            - user_impersonation
      tags:
        - Users
definitions:
  AddUsersPayload:
    description: Payload for Add Users operation on a Lab.
    properties:
      emailAddresses:
        description: List of user emails addresses to add to the lab.
        items:
          type: string
        type: array
    required:
      - emailAddresses
    type: object
  CloudError:
    description: Error from a REST request.
    properties:
      error:
        $ref: "#/definitions/CloudErrorBody"
    type: object
    x-ms-external: true
  CloudErrorBody:
    description: Body of an error from a REST request.
    properties:
      code:
        type: string
      details:
        description: Inner errors.
        items:
          $ref: "#/definitions/CloudErrorBody"
        type: array
      message:
        type: string
      target:
        type: string
    type: object
    x-ms-external: true
  CreateLabProperties:
    description: Properties for creating a managed lab and a default environment setting
    properties:
      environmentSettingCreationParameters:
        $ref: "#/definitions/EnvironmentSettingCreationParameters"
        description: Settings related to creating an environment setting
      labCreationParameters:
        $ref: "#/definitions/LabCreationParameters"
        description: Settings related to creating a lab
      location:
        description: The location of the resource
        type: string
      name:
        description: The name of the resource
        type: string
      tags:
        additionalProperties:
          type: string
        description: The tags of the resource.
        type: object
    required:
      - labCreationParameters
      - name
    type: object
  Environment:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Represents an environment instance
    properties:
      properties:
        $ref: "#/definitions/EnvironmentProperties"
        description: The properties of the Environment resource
        x-ms-client-flatten: true
    type: object
  EnvironmentDetails:
    description: This represents the details about a User's environment and its state.
    properties:
      description:
        description: Description of the Environment
        readOnly: true
        type: string
      environmentState:
        description: Publishing state of the environment setting Possible values are Creating, Created, Failed
        readOnly: true
        type: string
      id:
        description: Resource Id of the environment
        readOnly: true
        type: string
      latestOperationResult:
        $ref: "#/definitions/LatestOperationResult"
        description: "The details of the latest operation. ex: status, error"
        readOnly: true
      name:
        description: Name of the Environment
        readOnly: true
        type: string
      passwordLastReset:
        description: When the password was last reset on the environment.
        format: date-time
        readOnly: true
        type: string
      provisioningState:
        description: The provisioning state of the environment. This also includes LabIsFull and NotYetProvisioned status.
        readOnly: true
        type: string
      totalUsage:
        description: How long the environment has been used by a lab user
        format: duration
        readOnly: true
        type: string
      virtualMachineDetails:
        $ref: "#/definitions/VirtualMachineDetails"
        description: Details of backing DTL virtual machine with compute and network details.
        readOnly: true
    type: object
  EnvironmentFragment:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Represents an environment instance
    properties:
      properties:
        $ref: "#/definitions/EnvironmentPropertiesFragment"
        description: The properties of the Environment resource
        x-ms-client-flatten: true
    type: object
  EnvironmentOperationsPayload:
    description: Represents payload for any Environment operations like get, start, stop, connect
    properties:
      environmentId:
        description: The resourceId of the environment
        type: string
    required:
      - environmentId
    type: object
  EnvironmentProperties:
    description: Properties of an environment
    properties:
      claimedByUserName:
        description: The name or email address of the user who has claimed the environment
        readOnly: true
        type: string
      claimedByUserObjectId:
        description: The AAD object Id of the user who has claimed the environment
        readOnly: true
        type: string
      claimedByUserPrincipalId:
        description: The user principal Id of the user who has claimed the environment
        readOnly: true
        type: string
      isClaimed:
        description: Is the environment claimed or not
        readOnly: true
        type: boolean
      lastKnownPowerState:
        description: Last known power state of the environment
        readOnly: true
        type: string
      latestOperationResult:
        $ref: "#/definitions/LatestOperationResult"
        description: "The details of the latest operation. ex: status, error"
        readOnly: true
      networkInterface:
        $ref: "#/definitions/NetworkInterface"
        description: Network details of the environment
        readOnly: true
      passwordLastReset:
        description: When the password was last reset on the environment.
        format: date-time
        readOnly: true
        type: string
      provisioningState:
        description: The provisioning status of the resource.
        type: string
      resourceSets:
        $ref: "#/definitions/ResourceSet"
        description: The set of a VM and the setting id it was created for
      totalUsage:
        description: How long the environment has been used by a lab user
        format: duration
        readOnly: true
        type: string
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        type: string
    type: object
  EnvironmentPropertiesFragment:
    description: Properties of an environment
    properties:
      provisioningState:
        description: The provisioning status of the resource.
        type: string
      resourceSets:
        $ref: "#/definitions/ResourceSetFragment"
        description: The set of a VM and the setting id it was created for
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        type: string
    type: object
  EnvironmentSetting:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Represents settings of an environment, from which environment instances would be created
    properties:
      properties:
        $ref: "#/definitions/EnvironmentSettingProperties"
        description: The properties of the Environment Setting resource
        x-ms-client-flatten: true
    type: object
  EnvironmentSettingCreationParameters:
    description: Settings related to creating an environment setting
    properties:
      resourceSettingCreationParameters:
        $ref: "#/definitions/ResourceSettingCreationParameters"
        description: The resource specific settings
    required:
      - resourceSettingCreationParameters
    type: object
  EnvironmentSettingFragment:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Represents settings of an environment, from which environment instances would be created
    properties:
      properties:
        $ref: "#/definitions/EnvironmentSettingPropertiesFragment"
        description: The properties of the Environment Setting resource
        x-ms-client-flatten: true
    type: object
  EnvironmentSettingProperties:
    description: Properties of an environment setting
    properties:
      configurationState:
        description: Describes the user's progress in configuring their environment setting
        enum:
          - NotApplicable
          - Completed
        type: string
        x-ms-enum:
          modelAsString: true
          name: ConfigurationState
          values:
            - description: "User either hasn't started configuring their template\r

                or they haven't started the configuration process."
              value: NotApplicable
            - description: User is finished modifying the template.
              value: Completed
      description:
        description: Describes the environment and its resource settings
        type: string
      lastChanged:
        description: Time when the template VM was last changed.
        format: date-time
        readOnly: true
        type: string
      lastPublished:
        description: Time when the template VM was last sent for publishing.
        format: date-time
        readOnly: true
        type: string
      latestOperationResult:
        $ref: "#/definitions/LatestOperationResult"
        description: "The details of the latest operation. ex: status, error"
        readOnly: true
      provisioningState:
        description: The provisioning status of the resource.
        type: string
      publishingState:
        description: Describes the readiness of this environment setting
        enum:
          - Draft
          - Publishing
          - Published
          - PublishFailed
          - Scaling
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: true
          name: PublishingState
          values:
            - description: Initial state of an environment setting.
              value: Draft
            - description: Currently provisioning resources.
              value: Publishing
            - description: All resources are currently provisioned.
              value: Published
            - description: Failed to provision all the necessary resources.
              value: PublishFailed
            - description: Currently provisioning resources without recreating VM image.
              value: Scaling
      resourceSettings:
        $ref: "#/definitions/ResourceSettings"
        description: The resource specific settings
      title:
        description: Brief title describing the environment and its resource settings
        type: string
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        type: string
    required:
      - resourceSettings
    type: object
  EnvironmentSettingPropertiesFragment:
    description: Properties of an environment setting
    properties:
      configurationState:
        description: Describes the user's progress in configuring their environment setting
        enum:
          - NotApplicable
          - Completed
        type: string
        x-ms-enum:
          modelAsString: true
          name: ConfigurationState
          values:
            - description: "User either hasn't started configuring their template\r

                or they haven't started the configuration process."
              value: NotApplicable
            - description: User is finished modifying the template.
              value: Completed
      description:
        description: Describes the environment and its resource settings
        type: string
      provisioningState:
        description: The provisioning status of the resource.
        type: string
      resourceSettings:
        $ref: "#/definitions/ResourceSettingsFragment"
        description: The resource specific settings
      title:
        description: Brief title describing the environment and its resource settings
        type: string
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        type: string
    type: object
  EnvironmentSize:
    description: Represents a size category supported by this Lab Account (small, medium or large)
    properties:
      maxPrice:
        description: The pay-as-you-go dollar price per hour this size will cost. It does not include discounts and may not reflect the actual price the size will cost. This is the maximum price of all prices within this tier.
        format: decimal
        readOnly: true
        type: number
      minMemory:
        description: The amount of memory available (in GB). This is the minimum amount of memory within this tier.
        format: double
        readOnly: true
        type: number
      minNumberOfCores:
        description: The number of cores a VM of this size has. This is the minimum number of cores within this tier.
        format: int32
        readOnly: true
        type: integer
      name:
        description: The size category
        enum:
          - Basic
          - Standard
          - Performance
        type: string
        x-ms-enum:
          modelAsString: true
          name: ManagedLabVmSize
          values:
            - description: The base VM size
              value: Basic
            - description: The standard or default VM size
              value: Standard
            - description: The most performant VM size
              value: Performance
      vmSizes:
        description: Represents a set of compute sizes that can serve this given size type
        items:
          $ref: "#/definitions/SizeInfo"
        type: array
    type: object
  EnvironmentSizeFragment:
    description: Represents a size category supported by this Lab Account (small, medium or large)
    properties:
      name:
        description: The size category
        enum:
          - Basic
          - Standard
          - Performance
        type: string
        x-ms-enum:
          modelAsString: true
          name: ManagedLabVmSize
          values:
            - description: The base VM size
              value: Basic
            - description: The standard or default VM size
              value: Standard
            - description: The most performant VM size
              value: Performance
      vmSizes:
        description: Represents a set of compute sizes that can serve this given size type
        items:
          $ref: "#/definitions/SizeInfoFragment"
        type: array
    type: object
  GalleryImage:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Represents an image from the Azure Marketplace
    properties:
      properties:
        $ref: "#/definitions/GalleryImageProperties"
        description: The gallery image properties
        x-ms-client-flatten: true
    type: object
  GalleryImageFragment:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Represents an image from the Azure Marketplace
    properties:
      properties:
        $ref: "#/definitions/GalleryImagePropertiesFragment"
        description: The gallery image properties
        x-ms-client-flatten: true
    type: object
  GalleryImageProperties:
    description: The gallery image properties
    properties:
      author:
        description: The author of the gallery image.
        readOnly: true
        type: string
      createdDate:
        description: The creation date of the gallery image.
        format: date-time
        readOnly: true
        type: string
      description:
        description: The description of the gallery image.
        readOnly: true
        type: string
      icon:
        description: The icon of the gallery image.
        readOnly: true
        type: string
      imageReference:
        $ref: "#/definitions/GalleryImageReference"
        description: The image reference of the gallery image.
        readOnly: true
      isEnabled:
        description: Indicates whether this gallery image is enabled.
        type: boolean
      isOverride:
        description: Indicates whether this gallery has been overridden for this lab account
        type: boolean
      isPlanAuthorized:
        description: Indicates if the plan has been authorized for programmatic deployment.
        type: boolean
      latestOperationResult:
        $ref: "#/definitions/LatestOperationResult"
        description: "The details of the latest operation. ex: status, error"
        readOnly: true
      planId:
        description: The third party plan that applies to this image
        readOnly: true
        type: string
      provisioningState:
        description: The provisioning status of the resource.
        type: string
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        type: string
    type: object
  GalleryImagePropertiesFragment:
    description: The gallery image properties
    properties:
      isEnabled:
        description: Indicates whether this gallery image is enabled.
        type: boolean
      isOverride:
        description: Indicates whether this gallery has been overridden for this lab account
        type: boolean
      isPlanAuthorized:
        description: Indicates if the plan has been authorized for programmatic deployment.
        type: boolean
      provisioningState:
        description: The provisioning status of the resource.
        type: string
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        type: string
    type: object
  GalleryImageReference:
    description: The reference information for an Azure Marketplace image.
    properties:
      offer:
        description: The offer of the gallery image.
        type: string
      osType:
        description: The OS type of the gallery image.
        type: string
      publisher:
        description: The publisher of the gallery image.
        type: string
      sku:
        description: The SKU of the gallery image.
        type: string
      version:
        description: The version of the gallery image.
        type: string
    type: object
  GalleryImageReferenceFragment:
    description: The reference information for an Azure Marketplace image.
    properties:
      offer:
        description: The offer of the gallery image.
        type: string
      osType:
        description: The OS type of the gallery image.
        type: string
      publisher:
        description: The publisher of the gallery image.
        type: string
      sku:
        description: The SKU of the gallery image.
        type: string
      version:
        description: The version of the gallery image.
        type: string
    type: object
  GetEnvironmentResponse:
    description: Represents the environments details
    properties:
      environment:
        $ref: "#/definitions/EnvironmentDetails"
        description: Details of the environment
        readOnly: true
    type: object
  GetPersonalPreferencesResponse:
    description: Represents the PersonalPreferences for the user
    properties:
      favoriteLabResourceIds:
        description: Array of favorite lab resource ids
        items:
          type: string
        type: array
      id:
        description: Id to be used by the cache orchestrator
        type: string
    type: object
  GetRegionalAvailabilityResponse:
    description: The response model from the GetRegionalAvailability action
    properties:
      regionalAvailability:
        description: Availability information for different size categories per region
        items:
          $ref: "#/definitions/RegionalAvailability"
        type: array
    type: object
  Lab:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Represents a lab.
    properties:
      properties:
        $ref: "#/definitions/LabProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
    type: object
  LabAccount:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Represents a lab account.
    properties:
      properties:
        $ref: "#/definitions/LabAccountProperties"
        description: The properties of the resource.
        x-ms-client-flatten: true
    type: object
  LabAccountFragment:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Represents a lab account.
    properties:
      properties:
        $ref: "#/definitions/LabAccountPropertiesFragment"
        description: The properties of the resource.
        x-ms-client-flatten: true
    type: object
  LabAccountProperties:
    description: Properties of a Lab Account.
    properties:
      enabledRegionSelection:
        description: Represents if region selection is enabled
        type: boolean
      latestOperationResult:
        $ref: "#/definitions/LatestOperationResult"
        description: "The details of the latest operation. ex: status, error"
        readOnly: true
      provisioningState:
        description: The provisioning status of the resource.
        type: string
      sizeConfiguration:
        $ref: "#/definitions/SizeConfigurationProperties"
        description: Represents the size configuration under the lab account
        readOnly: true
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        type: string
    type: object
  LabAccountPropertiesFragment:
    description: Properties of a Lab Account.
    properties:
      enabledRegionSelection:
        description: Represents if region selection is enabled
        type: boolean
      provisioningState:
        description: The provisioning status of the resource.
        type: string
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        type: string
    type: object
  LabCreationParameters:
    description: Settings related to creating a lab
    properties:
      maxUsersInLab:
        description: Maximum number of users allowed in the lab.
        format: int32
        type: integer
    type: object
  LabDetails:
    description: This represents the details about a lab that the User is in, and its state.
    properties:
      id:
        description: The Id of the lab.
        type: string
      name:
        description: Name of the lab
        type: string
      provisioningState:
        description: The provisioning state of the lab.
        type: string
      usageQuota:
        description: The maximum duration a user can use a VM in this lab.
        format: duration
        readOnly: true
        type: string
    type: object
  LabFragment:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Represents a lab.
    properties:
      properties:
        $ref: "#/definitions/LabPropertiesFragment"
        description: The properties of the resource.
        x-ms-client-flatten: true
    type: object
  LabProperties:
    description: Properties of a Lab.
    properties:
      createdByObjectId:
        description: Object id of the user that created the lab.
        readOnly: true
        type: string
      createdByUserPrincipalName:
        description: Lab creator name
        readOnly: true
        type: string
      createdDate:
        description: Creation date for the lab
        format: date-time
        readOnly: true
        type: string
      invitationCode:
        description: Invitation code that users can use to join a lab.
        readOnly: true
        type: string
      latestOperationResult:
        $ref: "#/definitions/LatestOperationResult"
        description: "The details of the latest operation. ex: status, error"
        readOnly: true
      maxUsersInLab:
        description: Maximum number of users allowed in the lab.
        format: int32
        type: integer
      provisioningState:
        description: The provisioning status of the resource.
        type: string
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        type: string
      usageQuota:
        description: Maximum duration a user can use an environment for in the lab.
        format: duration
        type: string
      userAccessMode:
        description: Lab user access mode (open to all vs. restricted to those listed on the lab).
        enum:
          - Restricted
          - Open
        type: string
        x-ms-enum:
          modelAsString: true
          name: LabUserAccessMode
          values:
            - description: Only users registered with the lab can access VMs.
              value: Restricted
            - description: Any user can register with the lab and access its VMs.
              value: Open
      userQuota:
        description: Maximum value MaxUsersInLab can be set to, as specified by the service
        format: int32
        readOnly: true
        type: integer
    type: object
  LabPropertiesFragment:
    description: Properties of a Lab.
    properties:
      maxUsersInLab:
        description: Maximum number of users allowed in the lab.
        format: int32
        type: integer
      provisioningState:
        description: The provisioning status of the resource.
        type: string
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        type: string
      usageQuota:
        description: Maximum duration a user can use an environment for in the lab.
        format: duration
        type: string
      userAccessMode:
        description: Lab user access mode (open to all vs. restricted to those listed on the lab).
        enum:
          - Restricted
          - Open
        type: string
        x-ms-enum:
          modelAsString: true
          name: LabUserAccessMode
          values:
            - description: Only users registered with the lab can access VMs.
              value: Restricted
            - description: Any user can register with the lab and access its VMs.
              value: Open
    type: object
  LatestOperationResult:
    description: Details of the status of an operation.
    properties:
      errorCode:
        description: Error code on failure.
        readOnly: true
        type: string
      errorMessage:
        description: The error message.
        readOnly: true
        type: string
      httpMethod:
        description: The HttpMethod - PUT/POST/DELETE for the operation.
        readOnly: true
        type: string
      operationUrl:
        description: The URL to use to check long-running operation status
        readOnly: true
        type: string
      requestUri:
        description: Request URI of the operation.
        readOnly: true
        type: string
      status:
        description: The current status of the operation.
        readOnly: true
        type: string
    type: object
  LatestOperationResultFragment:
    description: Details of the status of an operation.
    properties: {}
    type: object
  ListEnvironmentsPayload:
    description: Represents the payload to list environments owned by a user
    properties:
      labId:
        description: The resource Id of the lab
        type: string
    type: object
  ListEnvironmentsResponse:
    description: Represents the list of environments owned by a user
    properties:
      environments:
        description: List of all the environments
        items:
          $ref: "#/definitions/EnvironmentDetails"
        type: array
    type: object
  ListLabsResponse:
    description: Lists the labs owned by a user
    properties:
      labs:
        description: List of all the labs
        items:
          $ref: "#/definitions/LabDetails"
        type: array
    type: object
  NetworkInterface:
    description: Network details of the environment
    properties:
      privateIpAddress:
        description: PrivateIp address of the Compute VM
        readOnly: true
        type: string
      rdpAuthority:
        description: Connection information for Windows
        readOnly: true
        type: string
      sshAuthority:
        description: Connection information for Linux
        readOnly: true
        type: string
      username:
        description: Username of the VM
        readOnly: true
        type: string
    type: object
  NetworkInterfaceFragment:
    description: Network details of the environment
    properties: {}
    type: object
  OperationBatchStatusPayload:
    description: Payload to get the status of an operation
    properties:
      urls:
        description: The operation url of long running operation
        items:
          type: string
        type: array
    required:
      - urls
    type: object
  OperationBatchStatusResponse:
    description: Status Details of the long running operation for an environment
    properties:
      items:
        description: Gets a collection of items that contain the operation url and status.
        items:
          $ref: "#/definitions/OperationBatchStatusResponseItem"
        readOnly: true
        type: array
    type: object
  OperationBatchStatusResponseItem:
    description: Represents the status of an operation that used the batch API.
    properties:
      operationUrl:
        description: status of the long running operation for an environment
        readOnly: true
        type: string
      status:
        description: status of the long running operation for an environment
        readOnly: true
        type: string
    type: object
  OperationError:
    description: Error details for the operation in case of a failure.
    properties:
      code:
        description: The error code of the operation error.
        type: string
      message:
        description: The error message of the operation error.
        type: string
    type: object
  OperationMetadata:
    description: The REST API operation supported by ManagedLab ResourceProvider.
    properties:
      display:
        $ref: "#/definitions/OperationMetadataDisplay"
        description: The object that describes the operations
      name:
        description: "Operation name: {provider}/{resource}/{operation}"
        type: string
    type: object
  OperationMetadataDisplay:
    description: The object that describes the operations
    properties:
      description:
        description: Friendly name of the operation
        type: string
      operation:
        description: "Operation type: read, write, delete, listKeys/action, etc."
        type: string
      provider:
        description: Friendly name of the resource provider
        type: string
      resource:
        description: Resource type on which the operation is performed.
        type: string
    type: object
  OperationResult:
    description: An Operation Result
    properties:
      error:
        $ref: "#/definitions/OperationError"
        description: Error details for the operation in case of a failure.
      status:
        description: The operation status.
        type: string
    type: object
  OperationStatusPayload:
    description: Payload to get the status of an operation
    properties:
      operationUrl:
        description: The operation url of long running operation
        type: string
    required:
      - operationUrl
    type: object
  OperationStatusResponse:
    description: Status Details of the long running operation for an environment
    properties:
      status:
        description: status of the long running operation for an environment
        readOnly: true
        type: string
    type: object
  PersonalPreferencesOperationsPayload:
    description: Represents payload for any Environment operations like get, start, stop, connect
    properties:
      addRemove:
        description: Enum indicating if user is adding or removing a favorite lab
        enum:
          - Add
          - Remove
        type: string
        x-ms-enum:
          modelAsString: true
          name: AddRemove
          values:
            - description: Indicates that a user is adding a favorite lab
              value: Add
            - description: Indicates that a user is removing a favorite lab
              value: Remove
      labAccountResourceId:
        description: Resource Id of the lab account
        type: string
      labResourceId:
        description: Resource Id of the lab to add/remove from the favorites list
        type: string
    type: object
  ProviderOperationResult:
    description: Result of the request to list REST API operations
    properties:
      nextLink:
        description: URL to get the next set of operation list results if there are any.
        readOnly: true
        type: string
      value:
        description: List of operations supported by the resource provider.
        items:
          $ref: "#/definitions/OperationMetadata"
        type: array
    type: object
  PublishPayload:
    description: Payload for Publish operation on EnvironmentSetting.
    properties:
      useExistingImage:
        description: Whether to use existing VM custom image when publishing.
        type: boolean
    type: object
  ReferenceVm:
    description: Details of a Reference Vm
    properties:
      password:
        description: The password of the virtual machine. This will be set to null in GET resource API
        type: string
      userName:
        description: The username of the virtual machine
        type: string
      vmResourceId:
        description: VM resource Id for the environment
        readOnly: true
        type: string
      vmStateDetails:
        $ref: "#/definitions/VmStateDetails"
        description: The state details for the reference virtual machine.
        readOnly: true
    required:
      - userName
    type: object
  ReferenceVmCreationParameters:
    description: Creation parameters for Reference Vm
    properties:
      password:
        description: The password of the virtual machine.
        type: string
      userName:
        description: The username of the virtual machine
        type: string
    required:
      - userName
      - password
    type: object
  ReferenceVmFragment:
    description: Details of a Reference Vm
    properties:
      password:
        description: The password of the virtual machine. This will be set to null in GET resource API
        type: string
      userName:
        description: The username of the virtual machine
        type: string
    type: object
  RegionalAvailability:
    description: The availability information of sizes across regions
    properties:
      region:
        description: Corresponding region
        type: string
      sizeAvailabilities:
        description: List of all the size information for the region
        items:
          $ref: "#/definitions/SizeAvailability"
        type: array
    type: object
  RegisterPayload:
    description: Represents payload for Register action.
    properties:
      registrationCode:
        description: The registration code of the lab.
        type: string
    type: object
  ResetPasswordPayload:
    description: Represents the payload for resetting passwords.
    properties:
      environmentId:
        description: The resourceId of the environment
        type: string
      password:
        description: The password to assign to the user specified in
        type: string
      username:
        description: The username for which the password will be reset.
        type: string
    required:
      - environmentId
    type: object
  Resource:
    description: An Azure resource.
    properties:
      id:
        description: The identifier of the resource.
        readOnly: true
        type: string
      location:
        description: The location of the resource.
        type: string
      name:
        description: The name of the resource.
        readOnly: true
        type: string
      tags:
        additionalProperties:
          type: string
        description: The tags of the resource.
        type: object
      type:
        description: The type of the resource.
        readOnly: true
        type: string
    type: object
    x-ms-azure-resource: true
  ResourceSet:
    description: Represents a VM and the setting Id it was created for.
    properties:
      resourceSettingId:
        description: resourceSettingId for the environment
        type: string
      vmResourceId:
        description: VM resource Id for the environment
        type: string
    type: object
  ResourceSetFragment:
    description: Represents a VM and the setting Id it was created for.
    properties:
      resourceSettingId:
        description: resourceSettingId for the environment
        type: string
      vmResourceId:
        description: VM resource Id for the environment
        type: string
    type: object
  ResourceSettingCreationParameters:
    description: Represents resource specific settings
    properties:
      galleryImageResourceId:
        description: The resource id of the gallery image used for creating the virtual machine
        type: string
      location:
        description: The location where the virtual machine will live
        type: string
      name:
        description: The name of the resource setting
        type: string
      referenceVmCreationParameters:
        $ref: "#/definitions/ReferenceVmCreationParameters"
        description: Creation parameters for Reference Vm
      size:
        description: The size of the virtual machine
        enum:
          - Basic
          - Standard
          - Performance
        type: string
        x-ms-enum:
          modelAsString: true
          name: ManagedLabVmSize
          values:
            - description: The base VM size
              value: Basic
            - description: The standard or default VM size
              value: Standard
            - description: The most performant VM size
              value: Performance
    required:
      - galleryImageResourceId
      - referenceVmCreationParameters
    type: object
  ResourceSettings:
    description: Represents resource specific settings
    properties:
      cores:
        description: The translated compute cores of the virtual machine
        format: int32
        readOnly: true
        type: integer
      galleryImageResourceId:
        description: The resource id of the gallery image used for creating the virtual machine
        type: string
      id:
        description: The unique id of the resource setting
        readOnly: true
        type: string
      imageName:
        description: The name of the image used to created the environment setting
        readOnly: true
        type: string
      referenceVm:
        $ref: "#/definitions/ReferenceVm"
        description: Details specific to Reference Vm
      size:
        description: The size of the virtual machine
        enum:
          - Basic
          - Standard
          - Performance
        type: string
        x-ms-enum:
          modelAsString: true
          name: ManagedLabVmSize
          values:
            - description: The base VM size
              value: Basic
            - description: The standard or default VM size
              value: Standard
            - description: The most performant VM size
              value: Performance
    required:
      - referenceVm
    type: object
  ResourceSettingsFragment:
    description: Represents resource specific settings
    properties:
      galleryImageResourceId:
        description: The resource id of the gallery image used for creating the virtual machine
        type: string
      referenceVm:
        $ref: "#/definitions/ReferenceVmFragment"
        description: Details specific to Reference Vm
      size:
        description: The size of the virtual machine
        enum:
          - Basic
          - Standard
          - Performance
        type: string
        x-ms-enum:
          modelAsString: true
          name: ManagedLabVmSize
          values:
            - description: The base VM size
              value: Basic
            - description: The standard or default VM size
              value: Standard
            - description: The most performant VM size
              value: Performance
    type: object
  "ResponseWithContinuation[EnvironmentSetting]":
    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/EnvironmentSetting"
        type: array
    type: object
  "ResponseWithContinuation[Environment]":
    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/Environment"
        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[LabAccount]":
    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/LabAccount"
        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[User]":
    description: The response of a list operation.
    properties:
      nextLink:
        description: Link for next set of results.
        type: string
      value:
        description: Results of the list operation.
        items:
          $ref: "#/definitions/User"
        type: array
    type: object
  SizeAvailability:
    description: Represents the size information
    properties:
      isAvailable:
        description: Whether or not this size category is available
        type: boolean
      sizeCategory:
        description: The category of the size (Basic, Standard, Performance).
        enum:
          - Basic
          - Standard
          - Performance
        type: string
        x-ms-enum:
          modelAsString: true
          name: ManagedLabVmSize
          values:
            - description: The base VM size
              value: Basic
            - description: The standard or default VM size
              value: Standard
            - description: The most performant VM size
              value: Performance
    type: object
  SizeConfigurationProperties:
    description: Represents the size configuration under the lab account
    properties:
      environmentSizes:
        description: Represents a list of size categories supported by this Lab Account (Small, Medium, Large)
        items:
          $ref: "#/definitions/EnvironmentSize"
        type: array
    type: object
  SizeConfigurationPropertiesFragment:
    description: Represents the size configuration under the lab account
    properties:
      environmentSizes:
        description: Represents a list of size categories supported by this Lab Account (Small, Medium, Large)
        items:
          $ref: "#/definitions/EnvironmentSizeFragment"
        type: array
    type: object
  SizeInfo:
    description: Contains detailed information about a size
    properties:
      computeSize:
        description: Represents the actual compute size, e.g. Standard_A2_v2.
        type: string
      memory:
        description: The amount of memory available (in GB).
        format: double
        type: number
      numberOfCores:
        description: The number of cores a VM of this size has.
        format: int32
        type: integer
      price:
        description: The pay-as-you-go price per hour this size will cost. It does not include discounts and may not reflect the actual price the size will cost.
        format: decimal
        type: number
    type: object
  SizeInfoFragment:
    description: Contains detailed information about a size
    properties:
      computeSize:
        description: Represents the actual compute size, e.g. Standard_A2_v2.
        type: string
      memory:
        description: The amount of memory available (in GB).
        format: double
        type: number
      numberOfCores:
        description: The number of cores a VM of this size has.
        format: int32
        type: integer
      price:
        description: The pay-as-you-go price per hour this size will cost. It does not include discounts and may not reflect the actual price the size will cost.
        format: decimal
        type: number
    type: object
  User:
    allOf:
      - $ref: "#/definitions/Resource"
    description: The User registered to a lab
    properties:
      properties:
        $ref: "#/definitions/UserProperties"
        description: These are the properties for the user registered under a lab.
        x-ms-client-flatten: true
    type: object
  UserFragment:
    allOf:
      - $ref: "#/definitions/Resource"
    description: The User registered to a lab
    properties:
      properties:
        $ref: "#/definitions/UserPropertiesFragment"
        description: These are the properties for the user registered under a lab.
        x-ms-client-flatten: true
    type: object
  UserProperties:
    description: Lab User properties
    properties:
      email:
        description: The user email address, as it was specified during registration.
        readOnly: true
        type: string
      familyName:
        description: The user family name, as it was specified during registration.
        readOnly: true
        type: string
      givenName:
        description: The user given name, as it was specified during registration.
        readOnly: true
        type: string
      latestOperationResult:
        $ref: "#/definitions/LatestOperationResult"
        description: "The details of the latest operation. ex: status, error"
        readOnly: true
      provisioningState:
        description: The provisioning status of the resource.
        type: string
      tenantId:
        description: The user tenant ID, as it was specified during registration.
        readOnly: true
        type: string
      totalUsage:
        description: How long the user has used his VMs in this lab
        format: duration
        readOnly: true
        type: string
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        type: string
    type: object
  UserPropertiesFragment:
    description: Lab User properties
    properties:
      provisioningState:
        description: The provisioning status of the resource.
        type: string
      uniqueIdentifier:
        description: The unique immutable identifier of a resource (Guid).
        type: string
    type: object
  VirtualMachineDetails:
    description: Details of the backing virtual machine.
    properties:
      lastKnownPowerState:
        description: Last known compute power state captured in DTL
        readOnly: true
        type: string
      privateIpAddress:
        description: PrivateIp address of the compute VM
        readOnly: true
        type: string
      provisioningState:
        description: Provisioning state of the Dtl VM
        readOnly: true
        type: string
      rdpAuthority:
        description: Connection information for Windows
        readOnly: true
        type: string
      sshAuthority:
        description: Connection information for Linux
        readOnly: true
        type: string
      userName:
        description: Compute VM login user name
        readOnly: true
        type: string
    type: object
  VmStateDetails:
    description: Details about the state of the reference virtual machine.
    properties:
      lastKnownPowerState:
        description: Last known compute power state captured in DTL
        readOnly: true
        type: string
      powerState:
        description: The power state of the reference virtual machine.
        readOnly: true
        type: string
      rdpAuthority:
        description: The RdpAuthority property is a server DNS host name or IP address followed by the service port number for RDP (Remote Desktop Protocol).
        readOnly: true
        type: string
      sshAuthority:
        description: The SshAuthority property is a server DNS host name or IP address followed by the service port number for SSH.
        readOnly: true
        type: string
    type: object
  VmStateDetailsFragment:
    description: Details about the state of the reference virtual machine.
    properties: {}
    type: object
