swagger: '2.0' info: version: 2020-08-01-preview title: Microsoft Azure AccessControlClient AccessConnector Labs API schemes: - https tags: - name: Labs paths: /subscriptions/{subscriptionId}/providers/Microsoft.DevTestLab/labs: get: tags: - Labs description: List labs in a subscription. operationId: microsoftAzureLabsListbysubscription parameters: - $ref: '#/parameters/subscriptionId' - name: $expand in: query description: 'Specify the $expand query. Example: ''properties($select=defaultStorageAccount)''' type: string - name: $filter in: query description: 'The filter to apply to the operation. Example: ''$filter=contains(name,''myName'')' type: string - name: $top in: query description: 'The maximum number of resources to return from the operation. Example: ''$top=10''' type: integer format: int32 - name: $orderby in: query description: 'The ordering expression for the results, using OData notation. Example: ''$orderby=name desc''' type: string - $ref: '#/parameters/api-version' responses: '200': description: OK schema: $ref: '#/definitions/LabList' default: description: BadRequest schema: $ref: '#/definitions/CloudError' x-ms-pageable: nextLinkName: nextLink x-ms-odata: '#/definitions/Lab' x-ms-examples: Labs_ListBySubscription: $ref: ./examples/Labs_ListBySubscription.json summary: Microsoft Azure Get Subscriptions Subscriptionid Providers Microsoft Devtestlab Labs /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs: get: tags: - Labs description: List labs in a resource group. operationId: microsoftAzureLabsListbyresourcegroup parameters: - $ref: '#/parameters/subscriptionId' - $ref: '#/parameters/resourceGroupName' - name: $expand in: query description: 'Specify the $expand query. Example: ''properties($select=defaultStorageAccount)''' type: string - name: $filter in: query description: 'The filter to apply to the operation. Example: ''$filter=contains(name,''myName'')' type: string - name: $top in: query description: 'The maximum number of resources to return from the operation. Example: ''$top=10''' type: integer format: int32 - name: $orderby in: query description: 'The ordering expression for the results, using OData notation. Example: ''$orderby=name desc''' type: string - $ref: '#/parameters/api-version' responses: '200': description: OK schema: $ref: '#/definitions/LabList' default: description: BadRequest schema: $ref: '#/definitions/CloudError' x-ms-pageable: nextLinkName: nextLink x-ms-odata: '#/definitions/Lab' x-ms-examples: Labs_ListByResourceGroup: $ref: ./examples/Labs_ListByResourceGroup.json summary: Microsoft Azure Get Subscriptions Subscriptionid Resourcegroups Resourcegroupname Providers Microsoft Devtestlab Labs /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}: get: tags: - Labs description: Get lab. operationId: microsoftAzureLabsGet parameters: - $ref: '#/parameters/subscriptionId' - $ref: '#/parameters/resourceGroupName' - name: name in: path description: The name of the lab. required: true type: string - name: $expand in: query description: 'Specify the $expand query. Example: ''properties($select=defaultStorageAccount)''' type: string - $ref: '#/parameters/api-version' responses: '200': description: OK schema: $ref: '#/definitions/Lab' default: description: BadRequest schema: $ref: '#/definitions/CloudError' x-ms-examples: Labs_Get: $ref: ./examples/Labs_Get.json summary: Microsoft Azure Get Subscriptions Subscriptionid Resourcegroups Resourcegroupname Providers Microsoft Devtestlab Labs Name put: tags: - Labs description: Create or replace an existing lab. This operation can take a while to complete. operationId: microsoftAzureLabsCreateorupdate parameters: - $ref: '#/parameters/subscriptionId' - $ref: '#/parameters/resourceGroupName' - name: name in: path description: The name of the lab. required: true type: string - name: lab in: body description: A 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' x-ms-examples: Labs_CreateOrUpdate: $ref: ./examples/Labs_CreateOrUpdate.json x-ms-long-running-operation: true summary: Microsoft Azure Put Subscriptions Subscriptionid Resourcegroups Resourcegroupname Providers Microsoft Devtestlab Labs Name delete: tags: - Labs description: Delete lab. This operation can take a while to complete. operationId: microsoftAzureLabsDelete parameters: - $ref: '#/parameters/subscriptionId' - $ref: '#/parameters/resourceGroupName' - name: name in: path description: The name of the lab. required: true type: string - $ref: '#/parameters/api-version' responses: '200': description: OK '202': description: Accepted '204': description: No Content default: description: BadRequest schema: $ref: '#/definitions/CloudError' x-ms-examples: Labs_Delete: $ref: ./examples/Labs_Delete.json x-ms-long-running-operation: true summary: Microsoft Azure Delete Subscriptions Subscriptionid Resourcegroups Resourcegroupname Providers Microsoft Devtestlab Labs Name patch: tags: - Labs description: Allows modifying tags of labs. All other properties will be ignored. operationId: microsoftAzureLabsUpdate parameters: - $ref: '#/parameters/subscriptionId' - $ref: '#/parameters/resourceGroupName' - name: name in: path description: The name of the lab. required: true type: string - name: lab in: body description: A 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' x-ms-examples: Labs_Update: $ref: ./examples/Labs_Update.json summary: Microsoft Azure Patch Subscriptions Subscriptionid Resourcegroups Resourcegroupname Providers Microsoft Devtestlab Labs Name /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/claimAnyVm: post: tags: - Labs description: Claim a random claimable virtual machine in the lab. This operation can take a while to complete. operationId: microsoftAzureLabsClaimanyvm parameters: - $ref: '#/parameters/subscriptionId' - $ref: '#/parameters/resourceGroupName' - name: name in: path description: The name of the lab. required: true type: string - $ref: '#/parameters/api-version' responses: '200': description: OK '202': description: Accepted default: description: BadRequest schema: $ref: '#/definitions/CloudError' x-ms-examples: Labs_ClaimAnyVm: $ref: ./examples/Labs_ClaimAnyVm.json x-ms-long-running-operation: true summary: Microsoft Azure Post Subscriptions Subscriptionid Resourcegroups Resourcegroupname Providers Microsoft Devtestlab Labs Name Claimanyvm ? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/createEnvironment : post: tags: - Labs description: Create virtual machines in a lab. This operation can take a while to complete. operationId: microsoftAzureLabsCreateenvironment parameters: - $ref: '#/parameters/subscriptionId' - $ref: '#/parameters/resourceGroupName' - name: name in: path description: The name of the lab. required: true type: string - name: labVirtualMachineCreationParameter in: body description: Properties for creating a virtual machine. required: true schema: $ref: '#/definitions/LabVirtualMachineCreationParameter' - $ref: '#/parameters/api-version' responses: '200': description: OK '202': description: Accepted default: description: BadRequest schema: $ref: '#/definitions/CloudError' x-ms-examples: Labs_CreateEnvironment: $ref: ./examples/Labs_CreateEnvironment.json x-ms-long-running-operation: true summary: Microsoft Azure Post Subscriptions Subscriptionid Resourcegroups Resourcegroupname Providers Microsoft Devtestlab Labs Name Createenvironment ? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/exportResourceUsage : post: tags: - Labs description: Exports the lab resource usage into a storage account This operation can take a while to complete. operationId: microsoftAzureLabsExportresourceusage parameters: - $ref: '#/parameters/subscriptionId' - $ref: '#/parameters/resourceGroupName' - name: name in: path description: The name of the lab. required: true type: string - name: exportResourceUsageParameters in: body description: The parameters of the export operation. required: true schema: $ref: '#/definitions/ExportResourceUsageParameters' - $ref: '#/parameters/api-version' responses: '200': description: OK '202': description: Accepted default: description: BadRequest schema: $ref: '#/definitions/CloudError' x-ms-examples: Labs_ExportResourceUsage: $ref: ./examples/Labs_ExportResourceUsage.json x-ms-long-running-operation: true summary: Microsoft Azure Post Subscriptions Subscriptionid Resourcegroups Resourcegroupname Providers Microsoft Devtestlab Labs Name Exportresourceusage ? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/generateUploadUri : post: tags: - Labs description: Generate a URI for uploading custom disk images to a Lab. operationId: microsoftAzureLabsGenerateuploaduri parameters: - $ref: '#/parameters/subscriptionId' - $ref: '#/parameters/resourceGroupName' - name: name in: path description: The name of the lab. required: true type: string - name: generateUploadUriParameter in: body description: Properties for generating an upload URI. required: true schema: $ref: '#/definitions/GenerateUploadUriParameter' - $ref: '#/parameters/api-version' responses: '200': description: OK schema: $ref: '#/definitions/GenerateUploadUriResponse' default: description: BadRequest schema: $ref: '#/definitions/CloudError' x-ms-examples: Labs_GenerateUploadUri: $ref: ./examples/Labs_GenerateUploadUri.json summary: Microsoft Azure Post Subscriptions Subscriptionid Resourcegroups Resourcegroupname Providers Microsoft Devtestlab Labs Name Generateuploaduri ? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/importVirtualMachine : post: tags: - Labs description: Import a virtual machine into a different lab. This operation can take a while to complete. operationId: microsoftAzureLabsImportvirtualmachine parameters: - $ref: '#/parameters/subscriptionId' - $ref: '#/parameters/resourceGroupName' - name: name in: path description: The name of the lab. required: true type: string - name: importLabVirtualMachineRequest in: body description: This represents the payload required to import a virtual machine from a different lab into the current one required: true schema: $ref: '#/definitions/ImportLabVirtualMachineRequest' - $ref: '#/parameters/api-version' responses: '200': description: OK '202': description: Accepted default: description: BadRequest schema: $ref: '#/definitions/CloudError' x-ms-examples: Labs_ImportVirtualMachine: $ref: ./examples/Labs_ImportVirtualMachine.json x-ms-long-running-operation: true summary: Microsoft Azure Post Subscriptions Subscriptionid Resourcegroups Resourcegroupname Providers Microsoft Devtestlab Labs Name Importvirtualmachine /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/labs/{name}/listVhds: post: tags: - Labs description: List disk images available for custom image creation. operationId: microsoftAzureLabsListvhds parameters: - $ref: '#/parameters/subscriptionId' - $ref: '#/parameters/resourceGroupName' - name: name in: path description: The name of the lab. required: true type: string - $ref: '#/parameters/api-version' responses: '200': description: OK schema: $ref: '#/definitions/LabVhdList' default: description: BadRequest schema: $ref: '#/definitions/CloudError' x-ms-pageable: nextLinkName: nextLink x-ms-examples: Labs_ListVhds: $ref: ./examples/Labs_ListVhds.json summary: Microsoft Azure Post Subscriptions Subscriptionid Resourcegroups Resourcegroupname Providers Microsoft Devtestlab Labs Name Listvhds ? /providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}/providers/Microsoft.Education/labs : get: tags: - Labs x-ms-examples: LabList: $ref: ./examples/LabList.json LabListIncludeBudget: $ref: ./examples/LabListIncludeBudget.json operationId: microsoftAzureLabsListall description: Get a list of labs associated with the provided billing account name and billing profile name. parameters: - $ref: '#/parameters/BillingAccountNameParameter' - $ref: '#/parameters/BillingProfileNameParameter' - $ref: '#/parameters/IncludeBudgetsParameter' - $ref: '#/parameters/IncludeDeletedParameter' - $ref: '#/parameters/ApiVersionParameter' responses: '200': description: Lab details. schema: $ref: '#/definitions/LabListResult' default: description: Describes the error if the operation is not successful. schema: $ref: '#/definitions/ErrorResponseBody' x-ms-pageable: nextLinkName: nextLink summary: Microsoft Azure Get Providers Microsoft Billing Billingaccounts Billingaccountname Billingprofiles Billingprofilename Providers Microsoft Education Labs ? /providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}/invoiceSections/{invoiceSectionName}/providers/Microsoft.Education/labs : get: tags: - Labs x-ms-examples: LabListWithInvoiceSectionName: $ref: ./examples/LabListWithInvoiceSectionName.json LabListWithInvoiceSectionNameIncludeBudget: $ref: ./examples/LabListWithInvoiceSectionNameIncludeBudget.json operationId: microsoftAzureLabsList description: Get the details for a specific lab associated with the provided billing account name, billing profile name, and invoice section name. parameters: - $ref: '#/parameters/BillingAccountNameParameter' - $ref: '#/parameters/BillingProfileNameParameter' - $ref: '#/parameters/InvoiceSectionNameParameter' - $ref: '#/parameters/IncludeBudgetsParameter' - $ref: '#/parameters/ApiVersionParameter' responses: '200': description: Lab details. schema: $ref: '#/definitions/LabListResult' default: description: Describes the error if the operation is not successful. schema: $ref: '#/definitions/ErrorResponseBody' x-ms-pageable: nextLinkName: nextLink summary: Microsoft Azure Get Providers Microsoft Billing Billingaccounts Billingaccountname Billingprofiles Billingprofilename Invoicesections Invoicesectionname Providers Microsoft Education Labs ? /providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}/invoiceSections/{invoiceSectionName}/providers/Microsoft.Education/labs/default : get: tags: - Labs x-ms-examples: Lab: $ref: ./examples/Lab.json LabIncludeBudget: $ref: ./examples/LabIncludeBudget.json operationId: microsoftAzureLabsGet description: Get the details for a specific lab associated with the provided billing account name, billing profile name, and invoice section name. parameters: - $ref: '#/parameters/BillingAccountNameParameter' - $ref: '#/parameters/BillingProfileNameParameter' - $ref: '#/parameters/InvoiceSectionNameParameter' - $ref: '#/parameters/IncludeBudgetsParameter' - $ref: '#/parameters/ApiVersionParameter' responses: '200': description: Lab details. schema: $ref: '#/definitions/LabDetails' default: description: Describes the error if the operation is not successful. schema: $ref: '#/definitions/ErrorResponseBody' summary: Microsoft Azure Get Providers Microsoft Billing Billingaccounts Billingaccountname Billingprofiles Billingprofilename Invoicesections Invoicesectionname Providers Microsoft Education Labs Default delete: tags: - Labs x-ms-examples: DeleteLab: $ref: ./examples/DeleteLab.json operationId: microsoftAzureLabsDelete description: Delete a specific lab associated with the provided billing account name, billing profile name, and invoice section name. Note all students must be removed from the lab in order to delete the lab. parameters: - $ref: '#/parameters/BillingAccountNameParameter' - $ref: '#/parameters/BillingProfileNameParameter' - $ref: '#/parameters/InvoiceSectionNameParameter' - $ref: '#/parameters/ApiVersionParameter' responses: '200': description: lab deleted '204': description: lab does not exists default: description: Error response describing why the operation failed. schema: $ref: '#/definitions/ErrorResponseBody' summary: Microsoft Azure Delete Providers Microsoft Billing Billingaccounts Billingaccountname Billingprofiles Billingprofilename Invoicesections Invoicesectionname Providers Microsoft Education Labs Default put: tags: - Labs x-ms-examples: CreateLab: $ref: ./examples/CreateLab.json operationId: microsoftAzureLabsCreateorupdate description: Create a new lab or update a previously created lab. parameters: - $ref: '#/parameters/BillingAccountNameParameter' - $ref: '#/parameters/BillingProfileNameParameter' - $ref: '#/parameters/InvoiceSectionNameParameter' - $ref: '#/parameters/ApiVersionParameter' - name: parameters in: body required: true schema: $ref: '#/definitions/LabDetails' description: Request parameters that are provided to create lab resource. responses: '200': description: Normal response to get lab details. schema: $ref: '#/definitions/LabDetails' '201': description: Accepted. Lab details. schema: $ref: '#/definitions/LabDetails' default: description: Describes the error if the operation is not successful. schema: $ref: '#/definitions/ErrorResponseBody' summary: Microsoft Azure Put Providers Microsoft Billing Billingaccounts Billingaccountname Billingprofiles Billingprofilename Invoicesections Invoicesectionname Providers Microsoft Education Labs Default ? /providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}/invoiceSections/{invoiceSectionName}/providers/Microsoft.Education/labs/default/generateInviteCode : post: tags: - Labs x-ms-examples: CreateLab: $ref: ./examples/GenerateInviteCode.json operationId: microsoftAzureLabsGenerateinvitecode description: Generate invite code for a lab parameters: - $ref: '#/parameters/BillingAccountNameParameter' - $ref: '#/parameters/BillingProfileNameParameter' - $ref: '#/parameters/InvoiceSectionNameParameter' - $ref: '#/parameters/OnlyUpdateStudentCountParameter' - $ref: '#/parameters/ApiVersionParameter' - name: parameters in: body required: true schema: $ref: '#/definitions/InviteCodeGenerateRequest' description: Request parameters that are provided to generate invite code. responses: '200': description: lab detail. schema: $ref: '#/definitions/LabDetails' default: description: Describes the error if the operation is not successful. schema: $ref: '#/definitions/ErrorResponseBody' summary: Microsoft Azure Post Providers Microsoft Billing Billingaccounts Billingaccountname Billingprofiles Billingprofilename Invoicesections Invoicesectionname Providers Microsoft Education Labs Default Generateinvitecode ? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs : get: tags: - Labs description: List labs in a given lab account. operationId: microsoftAzureLabsList parameters: - $ref: '#/parameters/subscriptionId' - $ref: '#/parameters/resourceGroupName' - name: labAccountName in: path description: The name of the lab Account. required: true type: string - name: $expand in: query description: 'Specify the $expand query. Example: ''properties($select=maxUsersInLab)''' required: false type: string - name: $filter in: query description: The filter to apply to the operation. required: false type: string - name: $top in: query description: The maximum number of resources to return from the operation. required: false type: integer format: int32 - name: $orderby in: query description: The ordering expression for the results, using OData notation. required: false type: string - $ref: '#/parameters/api-version_2' responses: '200': description: OK schema: $ref: '#/definitions/ResponseWithContinuation[Lab]' default: description: BadRequest schema: $ref: '#/definitions/CloudError_2' security: - azure_auth: - user_impersonation x-ms-pageable: nextLinkName: nextLink x-ms-odata: '#/definitions/Lab' x-ms-examples: Labs_List: $ref: ./examples/Labs_List.json summary: Microsoft Azure Get Subscriptions Subscriptionid Resourcegroups Resourcegroupname Providers Microsoft Labservices Labaccounts Labaccountname Labs ? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName} : get: tags: - Labs description: Get lab operationId: microsoftAzureLabsGet parameters: - $ref: '#/parameters/subscriptionId' - $ref: '#/parameters/resourceGroupName' - name: labAccountName in: path description: The name of the lab Account. required: true type: string - name: labName in: path description: The name of the lab. required: true type: string - name: $expand in: query description: 'Specify the $expand query. Example: ''properties($select=maxUsersInLab)''' required: false type: string - $ref: '#/parameters/api-version_2' responses: '200': description: OK schema: $ref: '#/definitions/Lab_2' default: description: BadRequest schema: $ref: '#/definitions/CloudError_2' security: - azure_auth: - user_impersonation summary: Microsoft Azure Get Subscriptions Subscriptionid Resourcegroups Resourcegroupname Providers Microsoft Labservices Labaccounts Labaccountname Labs Labname put: tags: - Labs description: Create or replace an existing Lab. operationId: microsoftAzureLabsCreateorupdate parameters: - $ref: '#/parameters/subscriptionId' - $ref: '#/parameters/resourceGroupName' - name: labAccountName in: path description: The name of the lab Account. required: true type: string - name: labName in: path description: The name of the lab. required: true type: string - name: lab in: body description: Represents a lab. required: true schema: $ref: '#/definitions/Lab_2' - $ref: '#/parameters/api-version_2' responses: '200': description: OK schema: $ref: '#/definitions/Lab_2' '201': description: Created schema: $ref: '#/definitions/Lab_2' default: description: BadRequest schema: $ref: '#/definitions/CloudError_2' security: - azure_auth: - user_impersonation summary: Microsoft Azure Put Subscriptions Subscriptionid Resourcegroups Resourcegroupname Providers Microsoft Labservices Labaccounts Labaccountname Labs Labname delete: tags: - Labs description: Delete lab. This operation can take a while to complete operationId: microsoftAzureLabsDelete parameters: - $ref: '#/parameters/subscriptionId' - $ref: '#/parameters/resourceGroupName' - name: labAccountName in: path description: The name of the lab Account. required: true type: string - name: labName in: path description: The name of the lab. required: true type: string - $ref: '#/parameters/api-version_2' responses: '202': description: Accepted '204': description: No Content default: description: BadRequest schema: $ref: '#/definitions/CloudError_2' security: - azure_auth: - user_impersonation x-ms-long-running-operation: true summary: Microsoft Azure Delete Subscriptions Subscriptionid Resourcegroups Resourcegroupname Providers Microsoft Labservices Labaccounts Labaccountname Labs Labname patch: tags: - Labs description: Modify properties of labs. operationId: microsoftAzureLabsUpdate parameters: - $ref: '#/parameters/subscriptionId' - $ref: '#/parameters/resourceGroupName' - name: labAccountName in: path description: The name of the lab Account. required: true type: string - name: labName in: path description: The name of the lab. required: true type: string - name: lab in: body description: Represents a lab. required: true schema: $ref: '#/definitions/LabFragment_2' - $ref: '#/parameters/api-version_2' responses: '200': description: OK schema: $ref: '#/definitions/Lab_2' default: description: BadRequest schema: $ref: '#/definitions/CloudError_2' security: - azure_auth: - user_impersonation summary: Microsoft Azure Patch Subscriptions Subscriptionid Resourcegroups Resourcegroupname Providers Microsoft Labservices Labaccounts Labaccountname Labs Labname ? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/addUsers : post: tags: - Labs description: Add users to a lab operationId: microsoftAzureLabsAddusers parameters: - $ref: '#/parameters/subscriptionId' - $ref: '#/parameters/resourceGroupName' - name: labAccountName in: path description: The name of the lab Account. required: true type: string - name: labName in: path description: The name of the lab. required: true type: string - name: addUsersPayload in: body description: Payload for Add Users operation on a Lab. required: true schema: $ref: '#/definitions/AddUsersPayload' - $ref: '#/parameters/api-version_2' responses: '200': description: OK default: description: BadRequest schema: $ref: '#/definitions/CloudError_2' security: - azure_auth: - user_impersonation summary: Microsoft Azure Post Subscriptions Subscriptionid Resourcegroups Resourcegroupname Providers Microsoft Labservices Labaccounts Labaccountname Labs Labname Addusers ? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/register : post: tags: - Labs description: Register to managed lab. operationId: microsoftAzureLabsRegister parameters: - $ref: '#/parameters/subscriptionId' - $ref: '#/parameters/resourceGroupName' - name: labAccountName in: path description: The name of the lab Account. required: true type: string - name: labName in: path description: The name of the lab. required: true type: string - $ref: '#/parameters/api-version_2' responses: '200': description: OK default: description: BadRequest schema: $ref: '#/definitions/CloudError_2' security: - azure_auth: - user_impersonation summary: Microsoft Azure Post Subscriptions Subscriptionid Resourcegroups Resourcegroupname Providers Microsoft Labservices Labaccounts Labaccountname Labs Labname Register definitions: LabProperties: description: Properties of a lab. type: object properties: defaultStorageAccount: description: The lab's default storage account. type: string readOnly: true defaultPremiumStorageAccount: description: The lab's default premium storage account. type: string readOnly: true artifactsStorageAccount: description: The lab's artifact storage account. type: string readOnly: true premiumDataDiskStorageAccount: description: The lab's premium data disk storage account. type: string readOnly: true vaultName: description: The lab's Key vault. type: string readOnly: true labStorageType: description: Type of storage used by the lab. It can be either Premium or Standard. Default is Premium. default: Premium enum: - Standard - Premium - StandardSSD type: string x-ms-enum: name: StorageType modelAsString: true mandatoryArtifactsResourceIdsLinux: description: The ordered list of artifact resource IDs that should be applied on all Linux VM creations by default, prior to the artifacts specified by the user. type: array items: type: string mandatoryArtifactsResourceIdsWindows: description: The ordered list of artifact resource IDs that should be applied on all Windows VM creations by default, prior to the artifacts specified by the user. type: array items: type: string createdDate: format: date-time description: The creation date of the lab. type: string readOnly: true premiumDataDisks: description: "The setting to enable usage of premium data disks.\r\nWhen its value is 'Enabled', creation of standard or premium data disks is allowed.\r\nWhen its value is 'Disabled', only creation of standard data disks is allowed." enum: - Disabled - Enabled type: string x-ms-enum: name: PremiumDataDisk modelAsString: true environmentPermission: description: The access rights to be granted to the user when provisioning an environment enum: - Reader - Contributor type: string x-ms-enum: name: EnvironmentPermission modelAsString: true announcement: $ref: '#/definitions/LabAnnouncementProperties' description: The properties of any lab announcement associated with this lab support: $ref: '#/definitions/LabSupportProperties' description: The properties of any lab support message associated with this lab vmCreationResourceGroup: description: The resource group in which all new lab virtual machines will be created. To let DevTest Labs manage resource group creation, set this value to null. type: string readOnly: true publicIpId: description: The public IP address for the lab's load balancer. type: string readOnly: true loadBalancerId: description: The load balancer used to for lab VMs that use shared IP address. type: string readOnly: true networkSecurityGroupId: description: The Network Security Group attached to the lab VMs Network interfaces to restrict open ports. type: string readOnly: true extendedProperties: description: Extended properties of the lab used for experimental features type: object additionalProperties: type: string provisioningState: description: The provisioning status of the resource. type: string readOnly: true uniqueIdentifier: description: The unique immutable identifier of a resource (Guid). type: string readOnly: true LabListResult: description: List of labs. type: object properties: value: description: The list of labs. type: array readOnly: true items: $ref: '#/definitions/LabDetails' nextLink: description: The link (url) to the next page of results. type: string readOnly: true ScheduleCreationParameter: description: Properties for creating a schedule. type: object properties: properties: $ref: '#/definitions/ScheduleCreationParameterProperties' description: The properties of the schedule. x-ms-client-flatten: true name: description: The name of the virtual machine or environment type: string location: description: The location of the new virtual machine or environment type: string readOnly: true tags: description: The tags of the resource. type: object additionalProperties: type: string LabPropertiesFragment: description: Properties of a Lab. type: object properties: maxUsersInLab: format: int32 description: Maximum number of users allowed in the lab. type: integer usageQuota: format: duration description: Maximum duration a user can use an environment for in the lab. 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: name: LabUserAccessMode modelAsString: true values: - value: Restricted description: Only users registered with the lab can access VMs. - value: Open description: Any user can register with the lab and access its VMs. provisioningState: description: The provisioning status of the resource. type: string uniqueIdentifier: description: The unique immutable identifier of a resource (Guid). type: string WeekDetails: description: Properties of a weekly schedule. type: object properties: weekdays: description: The days of the week for which the schedule is set (e.g. Sunday, Monday, Tuesday, etc.). type: array items: type: string time: description: The time of the day the schedule will occur. type: string UpdateResource: description: Represents an update resource type: object properties: tags: description: The tags of the resource. type: object additionalProperties: type: string CloudError_2: description: Error from a REST request. type: object properties: error: $ref: '#/definitions/CloudErrorBody_2' x-ms-external: true CloudErrorBody: description: Body of an error from a REST request. type: object properties: code: description: The error code. type: string message: description: The error message. type: string target: description: The error target. type: string details: description: Inner errors. type: array items: $ref: '#/definitions/CloudErrorBody' x-ms-external: true LabVirtualMachineCreationParameterProperties: description: Properties for virtual machine creation. type: object properties: bulkCreationParameters: $ref: '#/definitions/BulkCreationParameters' description: The number of virtual machine instances to create. notes: description: The notes of the virtual machine. type: string ownerObjectId: description: The object identifier of the owner of the virtual machine. default: dynamicValue type: string ownerUserPrincipalName: description: The user principal name of the virtual machine owner. type: string createdDate: format: date-time description: The creation date of the virtual machine. type: string customImageId: description: The custom image identifier of the virtual machine. type: string size: description: The size of the virtual machine. type: string userName: description: The user name of the virtual machine. type: string password: description: The password of the virtual machine administrator. type: string x-ms-secret: true sshKey: description: The SSH key of the virtual machine administrator. type: string x-ms-secret: true isAuthenticationWithSshKey: description: Indicates whether this virtual machine uses an SSH key for authentication. type: boolean labSubnetName: description: The lab subnet name of the virtual machine. type: string labVirtualNetworkId: description: The lab virtual network identifier of the virtual machine. type: string disallowPublicIpAddress: description: Indicates whether the virtual machine is to be created without a public IP address. default: false type: boolean artifacts: description: The artifacts to be installed on the virtual machine. type: array items: $ref: '#/definitions/ArtifactInstallProperties' galleryImageReference: $ref: '#/definitions/GalleryImageReference' description: The Microsoft Azure Marketplace image reference of the virtual machine. planId: description: The id of the plan associated with the virtual machine image type: string networkInterface: $ref: '#/definitions/NetworkInterfaceProperties' description: The network interface properties. expirationDate: format: date-time description: The expiration date for VM. type: string allowClaim: description: Indicates whether another user can take ownership of the virtual machine default: false type: boolean storageType: description: Storage type to use for virtual machine (i.e. Standard, Premium). default: labStorageType type: string environmentId: description: The resource ID of the environment that contains this virtual machine, if any. type: string dataDiskParameters: description: New or existing data disks to attach to the virtual machine after creation type: array items: $ref: '#/definitions/DataDiskProperties' scheduleParameters: description: Virtual Machine schedules to be created type: array items: $ref: '#/definitions/ScheduleCreationParameter' NotificationSettings: description: Notification settings for a schedule. type: object properties: status: description: If notifications are enabled for this schedule (i.e. Enabled, Disabled). default: Disabled enum: - Enabled - Disabled type: string x-ms-enum: name: EnableStatus modelAsString: true timeInMinutes: format: int32 description: Time in minutes before event at which notification will be sent. type: integer webhookUrl: description: The webhook URL to which the notification will be sent. type: string emailRecipient: description: The email recipient to send notifications to (can be a list of semi-colon separated email addresses). type: string notificationLocale: description: The locale to use when sending a notification (fallback for unsupported languages is EN). type: string LabFragment: description: A lab. type: object allOf: - $ref: '#/definitions/UpdateResource' properties: {} DayDetails: description: Properties of a daily schedule. type: object properties: time: description: The time of day the schedule will occur. type: string NetworkInterfaceProperties: description: Properties of a network interface. type: object properties: virtualNetworkId: description: The resource ID of the virtual network. type: string subnetId: description: The resource ID of the sub net. type: string publicIpAddressId: description: The resource ID of the public IP address. type: string publicIpAddress: description: The public IP address. type: string privateIpAddress: description: The private IP address. type: string dnsName: description: The DNS name. type: string rdpAuthority: description: The RdpAuthority property is a server DNS host name or IP address followed by the service port number for RDP (Remote Desktop Protocol). type: string sshAuthority: description: The SshAuthority property is a server DNS host name or IP address followed by the service port number for SSH. type: string sharedPublicIpAddressConfiguration: $ref: '#/definitions/SharedPublicIpAddressConfiguration' description: The configuration for sharing a public IP address across multiple virtual machines. HourDetails: description: Properties of an hourly schedule. type: object properties: minute: format: int32 description: Minutes of the hour the schedule will run. type: integer LabAnnouncementProperties: description: Properties of a lab's announcement banner type: object properties: title: description: The plain text title for the lab announcement type: string markdown: description: The markdown text (if any) that this lab displays in the UI. If left empty/null, nothing will be shown. type: string enabled: description: Is the lab announcement active/enabled at this time? enum: - Enabled - Disabled type: string x-ms-enum: name: EnableStatus modelAsString: true expirationDate: format: date-time description: The time at which the announcement expires (null for never) type: string expired: description: Has this announcement expired? type: boolean provisioningState: description: The provisioning status of the resource. type: string readOnly: true uniqueIdentifier: description: The unique immutable identifier of a resource (Guid). type: string readOnly: true ScheduleCreationParameterProperties: description: Properties for schedule creation. type: object properties: status: description: The status of the schedule (i.e. Enabled, Disabled) default: Disabled enum: - Enabled - Disabled type: string x-ms-enum: name: EnableStatus modelAsString: true taskType: description: The task type of the schedule (e.g. LabVmsShutdownTask, LabVmAutoStart). type: string weeklyRecurrence: $ref: '#/definitions/WeekDetails' description: If the schedule will occur only some days of the week, specify the weekly recurrence. dailyRecurrence: $ref: '#/definitions/DayDetails' description: If the schedule will occur once each day of the week, specify the daily recurrence. hourlyRecurrence: $ref: '#/definitions/HourDetails' description: If the schedule will occur multiple times a day, specify the hourly recurrence. timeZoneId: description: The time zone ID (e.g. China Standard Time, Greenland Standard Time, Pacific Standard time, etc.). The possible values for this property can be found in `IReadOnlyCollection TimeZoneConverter.TZConvert.KnownWindowsTimeZoneIds` (https://github.com/mattjohnsonpint/TimeZoneConverter/blob/main/README.md) type: string notificationSettings: $ref: '#/definitions/NotificationSettings' description: Notification settings. targetResourceId: description: The resource ID to which the schedule belongs type: string Resource: description: An Azure resource. type: object properties: id: description: The identifier of the resource. type: string readOnly: true name: description: The name of the resource. type: string readOnly: true type: description: The type of the resource. type: string readOnly: true location: description: The location of the resource. type: string tags: description: The tags of the resource. type: object additionalProperties: type: string x-ms-azure-resource: true LabDetails: description: Lab details. type: object allOf: - $ref: ../../../../../common-types/resource-management/v3/types.json#/definitions/Resource properties: properties: $ref: '#/definitions/LabProperties_2' description: Get lab response properties. x-ms-client-flatten: true ImportLabVirtualMachineRequest: description: This represents the payload required to import a virtual machine from a different lab into the current one type: object properties: sourceVirtualMachineResourceId: description: The full resource ID of the virtual machine to be imported. type: string destinationVirtualMachineName: description: The name of the virtual machine in the destination lab type: string LabList: description: The response of a list operation. type: object properties: value: description: Results of the list operation. type: array items: $ref: '#/definitions/Lab' nextLink: description: Link for next set of results. type: string InboundNatRule: description: A rule for NAT - exposing a VM's port (backendPort) on the public IP address using a load balancer. type: object properties: transportProtocol: description: The transport protocol for the endpoint. enum: - Tcp - Udp type: string x-ms-enum: name: TransportProtocol modelAsString: true frontendPort: format: int32 description: The external endpoint port of the inbound connection. Possible values range between 1 and 65535, inclusive. If unspecified, a value will be allocated automatically. type: integer backendPort: format: int32 description: The port to which the external traffic will be redirected. type: integer SharedPublicIpAddressConfiguration: description: Properties of a virtual machine that determine how it is connected to a load balancer. type: object properties: inboundNatRules: description: The incoming NAT rules type: array items: $ref: '#/definitions/InboundNatRule' LabProperties_3: description: Properties of a Lab. type: object properties: maxUsersInLab: format: int32 description: Maximum number of users allowed in the lab. type: integer userQuota: format: int32 description: Maximum value MaxUsersInLab can be set to, as specified by the service type: integer readOnly: true invitationCode: description: Invitation code that users can use to join a lab. type: string readOnly: true createdByObjectId: description: Object id of the user that created the lab. type: string readOnly: true usageQuota: format: duration description: Maximum duration a user can use an environment for in the lab. 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: name: LabUserAccessMode modelAsString: true values: - value: Restricted description: Only users registered with the lab can access VMs. - value: Open description: Any user can register with the lab and access its VMs. createdByUserPrincipalName: description: Lab creator name type: string readOnly: true createdDate: format: date-time description: Creation date for the lab type: string readOnly: true provisioningState: description: The provisioning status of the resource. type: string uniqueIdentifier: description: The unique immutable identifier of a resource (Guid). type: string latestOperationResult: $ref: '#/definitions/LatestOperationResult' description: 'The details of the latest operation. ex: status, error' readOnly: true ArtifactParameterProperties: description: Properties of an artifact parameter. type: object properties: name: description: The name of the artifact parameter. type: string value: description: The value of the artifact parameter. type: string GenerateUploadUriParameter: description: Properties for generating an upload URI. type: object properties: blobName: description: The blob name of the upload URI. type: string ArtifactInstallProperties: description: Properties of an artifact. type: object properties: artifactId: description: The artifact's identifier. type: string artifactTitle: description: The artifact's title. type: string parameters: description: The parameters of the artifact. type: array items: $ref: '#/definitions/ArtifactParameterProperties' status: description: The status of the artifact. type: string deploymentStatusMessage: description: The status message from the deployment. type: string vmExtensionStatusMessage: description: The status message from the virtual machine extension. type: string installTime: format: date-time description: The time that the artifact starts to install on the virtual machine. type: string LabFragment_2: description: Represents a lab. type: object allOf: - $ref: '#/definitions/Resource' properties: properties: $ref: '#/definitions/LabPropertiesFragment' description: The properties of the resource. x-ms-client-flatten: true InviteCodeGenerateRequest: description: invite code generate request. type: object properties: maxStudentCount: type: number description: the total number of students that can be accepted to the lab. Lab: description: A lab. type: object allOf: - $ref: '#/definitions/Resource' properties: properties: $ref: '#/definitions/LabProperties' description: The properties of the resource. x-ms-client-flatten: true GalleryImageReference: description: The reference information for an Azure Marketplace image. type: object properties: offer: description: The offer 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 osType: description: The OS type of the gallery image. type: string version: description: The version of the gallery image. type: string LabVirtualMachineCreationParameter: description: Properties for creating a virtual machine. type: object properties: properties: $ref: '#/definitions/LabVirtualMachineCreationParameterProperties' description: The properties of the resource. x-ms-client-flatten: true name: description: The name of the virtual machine or environment type: string location: description: The location of the new virtual machine or environment type: string tags: description: The tags of the resource. type: object additionalProperties: type: string CloudErrorBody_2: description: Body of an error from a REST request. type: object properties: code: type: string message: type: string target: type: string details: description: Inner errors. type: array items: $ref: '#/definitions/CloudErrorBody_2' x-ms-external: true LabProperties_2: description: Lab detail result properties. type: object required: - displayName - budgetPerStudent - description - expirationDate properties: displayName: description: Lab Display Name type: string budgetPerStudent: $ref: '#/definitions/Amount' description: Default monetary cap for each student in this lab x-ms-mutability: - create - read description: type: string description: Detail description of this lab expirationDate: type: string format: date-time description: Default expiration date for each student in this lab effectiveDate: type: string format: date-time description: Lab creation date readOnly: true status: type: string description: The status of this lab enum: - Active - Deleted - Pending x-ms-enum: name: LabStatus modelAsString: true readOnly: true maxStudentCount: type: number description: the total number of students that can be accepted to the lab. readOnly: true invitationCode: type: string description: invitation code for redeemable lab readOnly: true totalBudget: $ref: '#/definitions/Amount' description: Total budget x-ms-client-flatten: true readOnly: true totalAllocatedBudget: $ref: '#/definitions/Amount' description: Total allocated budget x-ms-client-flatten: true readOnly: true LabSupportProperties: description: Properties of a lab's support banner type: object properties: enabled: description: Is the lab support banner active/enabled at this time? enum: - Enabled - Disabled type: string x-ms-enum: name: EnableStatus modelAsString: true markdown: description: The markdown text (if any) that this lab displays in the UI. If left empty/null, nothing will be shown. type: string DataDiskProperties: description: Request body for adding a new or existing data disk to a virtual machine. type: object properties: attachNewDataDiskOptions: $ref: '#/definitions/AttachNewDataDiskOptions' description: Specifies options to attach a new disk to the virtual machine. existingLabDiskId: description: Specifies the existing lab disk id to attach to virtual machine. type: string hostCaching: description: Caching option for a data disk (i.e. None, ReadOnly, ReadWrite). enum: - None - ReadOnly - ReadWrite type: string x-ms-enum: name: HostCachingOptions modelAsString: true ErrorResponseBody: description: Error response indicates that the service is not able to process the incoming request. The reason is provided in the error message. type: object properties: error: description: The details of the error. $ref: '#/definitions/ErrorResponse' Lab_2: description: Represents a lab. type: object allOf: - $ref: '#/definitions/Resource' properties: properties: $ref: '#/definitions/LabProperties_3' description: The properties of the resource. x-ms-client-flatten: true BulkCreationParameters: description: Parameters for creating multiple virtual machines as a single action. type: object properties: instanceCount: format: int32 description: The number of virtual machine instances to create. type: integer ErrorResponse: description: Describes the format of Error response. type: object properties: code: description: Error code type: string message: description: Error message indicating why the operation failed. type: string AttachNewDataDiskOptions: description: Properties to attach new disk to the Virtual Machine. type: object properties: diskSizeGiB: format: int32 description: Size of the disk to be attached in Gibibytes. type: integer diskName: description: The name of the disk to be attached. type: string diskType: description: The storage type for the disk (i.e. Standard, Premium). enum: - Standard - Premium - StandardSSD type: string x-ms-enum: name: StorageType modelAsString: true ExportResourceUsageParameters: description: The parameters of the export operation. type: object properties: blobStorageAbsoluteSasUri: description: The blob storage absolute sas uri with write permission to the container which the usage data needs to be uploaded to. type: string usageStartDate: format: date-time description: The start time of the usage. If not provided, usage will be reported since the beginning of data collection. type: string CloudError: description: Error from a REST request. type: object properties: error: $ref: '#/definitions/CloudErrorBody' description: The cloud error that occurred x-ms-external: true Amount: description: The amount. type: object properties: currency: description: The type of currency being used for the value. type: string value: description: Amount value. type: number LabVhd: description: Properties of a VHD in the lab. type: object properties: id: description: The URI to the VHD. type: string LatestOperationResult: description: Details of the status of an operation. type: object properties: status: description: The current status of the operation. type: string readOnly: true errorCode: description: Error code on failure. type: string readOnly: true errorMessage: description: The error message. type: string readOnly: true requestUri: description: Request URI of the operation. type: string readOnly: true httpMethod: description: The HttpMethod - PUT/POST/DELETE for the operation. type: string readOnly: true operationUrl: description: The URL to use to check long-running operation status type: string readOnly: true LabVhdList: description: The response of a list operation. type: object properties: value: description: Results of the list operation. type: array items: $ref: '#/definitions/LabVhd' nextLink: description: Link for next set of results. type: string AddUsersPayload: description: Payload for Add Users operation on a Lab. required: - emailAddresses type: object properties: emailAddresses: description: List of user emails addresses to add to the lab. type: array items: type: string ResponseWithContinuation[Lab]: description: The response of a list operation. type: object properties: value: description: Results of the list operation. type: array items: $ref: '#/definitions/Lab_2' nextLink: description: Link for next set of results. type: string GenerateUploadUriResponse: description: Response body for generating an upload URI. type: object properties: uploadUri: description: The upload URI for the VHD. type: string parameters: ApiVersionParameter: name: api-version in: query required: true type: string description: Version of the API to be used with the client request. Current version is 2021-12-01-preview resourceGroupName: name: resourceGroupName in: path description: The name of the resource group. required: true type: string x-ms-parameter-location: method api-version: name: api-version in: query description: Client API version. required: true type: string default: '2018-09-15' BillingProfileNameParameter: name: billingProfileName x-ms-parameter-location: method in: path required: true type: string description: The ID that uniquely identifies a billing profile. subscriptionId: name: subscriptionId in: path description: The subscription ID. required: true type: string InvoiceSectionNameParameter: name: invoiceSectionName x-ms-parameter-location: method in: path required: true type: string description: The ID that uniquely identifies an invoice section. api-version_2: name: api-version in: query description: Client API version. required: true type: string default: '2018-10-15' OnlyUpdateStudentCountParameter: name: onlyUpdateStudentCountParameter x-ms-parameter-location: method in: query type: boolean description: set this flag to true if you want to update student count without generating a new invite code IncludeDeletedParameter: name: includeDeleted x-ms-parameter-location: method in: query type: boolean description: May be used to show deleted items. BillingAccountNameParameter: name: billingAccountName x-ms-parameter-location: method in: path required: true type: string description: The ID that uniquely identifies a billing account. IncludeBudgetsParameter: name: includeBudget x-ms-parameter-location: method in: query type: boolean description: May be used to include budget information. x-ms-parameterized-host: hostTemplate: '{endpoint}' useSchemePrefix: false parameters: - $ref: '#/parameters/Endpoint'