diff --git a/specification/labservices/resource-manager/Microsoft.LabServices/stable/2018-10-15/ML.json b/specification/labservices/resource-manager/Microsoft.LabServices/stable/2018-10-15/ML.json new file mode 100644 index 000000000000..22df8e02e8c8 --- /dev/null +++ b/specification/labservices/resource-manager/Microsoft.LabServices/stable/2018-10-15/ML.json @@ -0,0 +1,4360 @@ +{ + "swagger": "2.0", + "info": { + "version": "2018-10-15", + "title": "ManagedLabsClient", + "description": "The Managed Labs Client." + }, + "host": "management.azure.com", + "schemes": [ "https" ], + "consumes": [ "application/json" ], + "produces": [ "application/json" ], + "paths": { + "/providers/Microsoft.LabServices/operations": { + "get": { + "tags": [ "ProviderOperations" ], + "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" ] } ], + "x-ms-pageable": { "nextLinkName": "nextLink" } + } + }, + "/providers/Microsoft.LabServices/users/{userName}/getEnvironment": { + "post": { + "tags": [ "GlobalUsers" ], + "description": "Gets the virtual machine details", + "operationId": "GlobalUsers_GetEnvironment", + "parameters": [ + { + "name": "userName", + "in": "path", + "description": "The name of the user.", + "required": true, + "type": "string" + }, + { + "name": "environmentOperationsPayload", + "in": "body", + "description": "Represents payload for any Environment operations like get, start, stop, connect", + "required": true, + "schema": { "$ref": "#/definitions/EnvironmentOperationsPayload" } + }, + { + "name": "$expand", + "in": "query", + "description": "Specify the $expand query. Example: 'properties($expand=environment)'", + "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" ] } ] + } + }, + "/providers/Microsoft.LabServices/users/{userName}/getOperationBatchStatus": { + "post": { + "tags": [ "GlobalUsers" ], + "description": "Get batch operation status", + "operationId": "GlobalUsers_GetOperationBatchStatus", + "parameters": [ + { + "name": "userName", + "in": "path", + "description": "The name of the user.", + "required": true, + "type": "string" + }, + { + "name": "operationBatchStatusPayload", + "in": "body", + "description": "Payload to get the status of an operation", + "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" ] } ] + } + }, + "/providers/Microsoft.LabServices/users/{userName}/getOperationStatus": { + "post": { + "tags": [ "GlobalUsers" ], + "description": "Gets the status of long running operation", + "operationId": "GlobalUsers_GetOperationStatus", + "parameters": [ + { + "name": "userName", + "in": "path", + "description": "The name of the user.", + "required": true, + "type": "string" + }, + { + "name": "operationStatusPayload", + "in": "body", + "description": "Payload to get the status of an operation", + "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" ] } ] + } + }, + "/providers/Microsoft.LabServices/users/{userName}/getPersonalPreferences": { + "post": { + "tags": [ "GlobalUsers" ], + "description": "Get personal preferences for a user", + "operationId": "GlobalUsers_GetPersonalPreferences", + "parameters": [ + { + "name": "userName", + "in": "path", + "description": "The name of the user.", + "required": true, + "type": "string" + }, + { + "name": "personalPerferencesOperationsPayload", + "in": "body", + "description": "Represents payload for any Environment operations like get, start, stop, connect", + "required": true, + "schema": { "$ref": "#/definitions/PersonalPerferencesOperationsPayload" } + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/GetPersonalPreferencesResponse" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "azure_auth": [ "user_impersonation" ] } ] + } + }, + "/providers/Microsoft.LabServices/users/{userName}/listEnvironments": { + "post": { + "tags": [ "GlobalUsers" ], + "description": "List Environments for the user", + "operationId": "GlobalUsers_ListEnvironments", + "parameters": [ + { + "name": "userName", + "in": "path", + "description": "The name of the user.", + "required": true, + "type": "string" + }, + { + "name": "listEnvironmentsPayload", + "in": "body", + "description": "Represents the payload to list environments owned by a user", + "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" ] } ] + } + }, + "/providers/Microsoft.LabServices/users/{userName}/listLabs": { + "post": { + "tags": [ "GlobalUsers" ], + "description": "List labs for the user.", + "operationId": "GlobalUsers_ListLabs", + "parameters": [ + { + "name": "userName", + "in": "path", + "description": "The name of the user.", + "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" ] } ] + } + }, + "/providers/Microsoft.LabServices/users/{userName}/register": { + "post": { + "tags": [ "GlobalUsers" ], + "description": "Register a user to a managed lab", + "operationId": "GlobalUsers_Register", + "parameters": [ + { + "name": "userName", + "in": "path", + "description": "The name of the user.", + "required": true, + "type": "string" + }, + { + "name": "registerPayload", + "in": "body", + "description": "Represents payload for Register action.", + "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" ] } ] + } + }, + "/providers/Microsoft.LabServices/users/{userName}/resetPassword": { + "post": { + "tags": [ "GlobalUsers" ], + "description": "Resets the user password on an environment This operation can take a while to complete", + "operationId": "GlobalUsers_ResetPassword", + "parameters": [ + { + "name": "userName", + "in": "path", + "description": "The name of the user.", + "required": true, + "type": "string" + }, + { + "name": "resetPasswordPayload", + "in": "body", + "description": "Represents the payload for resetting passwords.", + "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" ] } ], + "x-ms-long-running-operation": true + } + }, + "/providers/Microsoft.LabServices/users/{userName}/startEnvironment": { + "post": { + "tags": [ "GlobalUsers" ], + "description": "Starts an environment by starting all resources inside the environment. This operation can take a while to complete", + "operationId": "GlobalUsers_StartEnvironment", + "parameters": [ + { + "name": "userName", + "in": "path", + "description": "The name of the user.", + "required": true, + "type": "string" + }, + { + "name": "environmentOperationsPayload", + "in": "body", + "description": "Represents payload for any Environment operations like get, start, stop, connect", + "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" ] } ], + "x-ms-long-running-operation": true + } + }, + "/providers/Microsoft.LabServices/users/{userName}/stopEnvironment": { + "post": { + "tags": [ "GlobalUsers" ], + "description": "Stops an environment by stopping all resources inside the environment This operation can take a while to complete", + "operationId": "GlobalUsers_StopEnvironment", + "parameters": [ + { + "name": "userName", + "in": "path", + "description": "The name of the user.", + "required": true, + "type": "string" + }, + { + "name": "environmentOperationsPayload", + "in": "body", + "description": "Represents payload for any Environment operations like get, start, stop, connect", + "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" ] } ], + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.LabServices/labaccounts": { + "get": { + "tags": [ "LabAccounts" ], + "description": "List lab accounts in a subscription.", + "operationId": "LabAccounts_ListBySubscription", + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { + "name": "$expand", + "in": "query", + "description": "Specify the $expand query. Example: 'properties($expand=sizeConfiguration)'", + "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" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/ResponseWithContinuation[LabAccount]" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "azure_auth": [ "user_impersonation" ] } ], + "x-ms-pageable": { "nextLinkName": "nextLink" }, + "x-ms-odata": "#/definitions/LabAccount" + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.LabServices/locations/{locationName}/operations/{operationName}": { + "get": { + "tags": [ "Operations" ], + "description": "Get operation", + "operationId": "Operations_Get", + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { "$ref": "#/parameters/locationName" }, + { + "name": "operationName", + "in": "path", + "description": "The name of the operation.", + "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" ] } ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts": { + "get": { + "tags": [ "LabAccounts" ], + "description": "List lab accounts in a resource group.", + "operationId": "LabAccounts_ListByResourceGroup", + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { "$ref": "#/parameters/resourceGroupName" }, + { + "name": "$expand", + "in": "query", + "description": "Specify the $expand query. Example: 'properties($expand=sizeConfiguration)'", + "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" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/ResponseWithContinuation[LabAccount]" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "azure_auth": [ "user_impersonation" ] } ], + "x-ms-pageable": { "nextLinkName": "nextLink" }, + "x-ms-odata": "#/definitions/LabAccount" + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}": { + "get": { + "tags": [ "LabAccounts" ], + "description": "Get lab account", + "operationId": "LabAccounts_Get", + "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($expand=sizeConfiguration)'", + "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" ] } ] + }, + "put": { + "tags": [ "LabAccounts" ], + "description": "Create or replace an existing Lab Account.", + "operationId": "LabAccounts_CreateOrUpdate", + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { "$ref": "#/parameters/resourceGroupName" }, + { + "name": "labAccountName", + "in": "path", + "description": "The name of the lab Account.", + "required": true, + "type": "string" + }, + { + "name": "labAccount", + "in": "body", + "description": "Represents a lab account.", + "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" ] } ] + }, + "delete": { + "tags": [ "LabAccounts" ], + "description": "Delete lab account. This operation can take a while to complete", + "operationId": "LabAccounts_Delete", + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { "$ref": "#/parameters/resourceGroupName" }, + { + "name": "labAccountName", + "in": "path", + "description": "The name of the lab Account.", + "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" ] } ], + "x-ms-long-running-operation": true + }, + "patch": { + "tags": [ "LabAccounts" ], + "description": "Modify properties of lab accounts.", + "operationId": "LabAccounts_Update", + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { "$ref": "#/parameters/resourceGroupName" }, + { + "name": "labAccountName", + "in": "path", + "description": "The name of the lab Account.", + "required": true, + "type": "string" + }, + { + "name": "labAccount", + "in": "body", + "description": "Represents a lab account.", + "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" ] } ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/createLab": { + "post": { + "tags": [ "LabAccounts" ], + "description": "Create a lab in a lab account.", + "operationId": "LabAccounts_CreateLab", + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { "$ref": "#/parameters/resourceGroupName" }, + { + "name": "labAccountName", + "in": "path", + "description": "The name of the lab Account.", + "required": true, + "type": "string" + }, + { + "name": "createLabProperties", + "in": "body", + "description": "Properties for creating a managed lab and a default environment setting", + "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" ] } ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/galleryimages": { + "get": { + "tags": [ "GalleryImages" ], + "description": "List gallery images in a given lab account.", + "operationId": "GalleryImages_List", + "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=author)'", + "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" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/ResponseWithContinuation[GalleryImage]" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "azure_auth": [ "user_impersonation" ] } ], + "x-ms-pageable": { "nextLinkName": "nextLink" }, + "x-ms-odata": "#/definitions/GalleryImage" + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/galleryimages/{galleryImageName}": { + "get": { + "tags": [ "GalleryImages" ], + "description": "Get gallery image", + "operationId": "GalleryImages_Get", + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { "$ref": "#/parameters/resourceGroupName" }, + { + "name": "labAccountName", + "in": "path", + "description": "The name of the lab Account.", + "required": true, + "type": "string" + }, + { + "name": "galleryImageName", + "in": "path", + "description": "The name of the gallery Image.", + "required": true, + "type": "string" + }, + { + "name": "$expand", + "in": "query", + "description": "Specify the $expand query. Example: 'properties($select=author)'", + "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" ] } ] + }, + "put": { + "tags": [ "GalleryImages" ], + "description": "Create or replace an existing Gallery Image.", + "operationId": "GalleryImages_CreateOrUpdate", + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { "$ref": "#/parameters/resourceGroupName" }, + { + "name": "labAccountName", + "in": "path", + "description": "The name of the lab Account.", + "required": true, + "type": "string" + }, + { + "name": "galleryImageName", + "in": "path", + "description": "The name of the gallery Image.", + "required": true, + "type": "string" + }, + { + "name": "galleryImage", + "in": "body", + "description": "Represents an image from the Azure Marketplace", + "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" ] } ] + }, + "delete": { + "tags": [ "GalleryImages" ], + "description": "Delete gallery image.", + "operationId": "GalleryImages_Delete", + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { "$ref": "#/parameters/resourceGroupName" }, + { + "name": "labAccountName", + "in": "path", + "description": "The name of the lab Account.", + "required": true, + "type": "string" + }, + { + "name": "galleryImageName", + "in": "path", + "description": "The name of the gallery Image.", + "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" ] } ] + }, + "patch": { + "tags": [ "GalleryImages" ], + "description": "Modify properties of gallery images.", + "operationId": "GalleryImages_Update", + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { "$ref": "#/parameters/resourceGroupName" }, + { + "name": "labAccountName", + "in": "path", + "description": "The name of the lab Account.", + "required": true, + "type": "string" + }, + { + "name": "galleryImageName", + "in": "path", + "description": "The name of the gallery Image.", + "required": true, + "type": "string" + }, + { + "name": "galleryImage", + "in": "body", + "description": "Represents an image from the Azure Marketplace", + "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" ] } ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/getRegionalAvailability": { + "post": { + "tags": [ "LabAccounts" ], + "description": "Get regional availability information for each size category configured under a lab account", + "operationId": "LabAccounts_GetRegionalAvailability", + "parameters": [ + { "$ref": "#/parameters/subscriptionId" }, + { "$ref": "#/parameters/resourceGroupName" }, + { + "name": "labAccountName", + "in": "path", + "description": "The name of the lab Account.", + "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" ] } ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs": { + "get": { + "tags": [ "Labs" ], + "description": "List labs in a given lab account.", + "operationId": "Labs_List", + "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" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/ResponseWithContinuation[Lab]" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "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" } } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}": { + "get": { + "tags": [ "Labs" ], + "description": "Get lab", + "operationId": "Labs_Get", + "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" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/Lab" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "azure_auth": [ "user_impersonation" ] } ] + }, + "put": { + "tags": [ "Labs" ], + "description": "Create or replace an existing Lab.", + "operationId": "Labs_CreateOrUpdate", + "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" } + }, + { "$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" ] } ] + }, + "delete": { + "tags": [ "Labs" ], + "description": "Delete lab. This operation can take a while to complete", + "operationId": "Labs_Delete", + "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" } + ], + "responses": { + "202": { "description": "Accepted" }, + "204": { "description": "No Content" }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "azure_auth": [ "user_impersonation" ] } ], + "x-ms-long-running-operation": true + }, + "patch": { + "tags": [ "Labs" ], + "description": "Modify properties of labs.", + "operationId": "Labs_Update", + "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" } + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/Lab" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "azure_auth": [ "user_impersonation" ] } ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/addUsers": { + "post": { + "tags": [ "Labs" ], + "description": "Add users to a lab", + "operationId": "Labs_AddUsers", + "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" } + ], + "responses": { + "200": { "description": "OK" }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "azure_auth": [ "user_impersonation" ] } ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/environmentsettings": { + "get": { + "tags": [ "EnvironmentSettings" ], + "description": "List environment setting in a given lab.", + "operationId": "EnvironmentSettings_List", + "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=publishingState)'", + "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" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/ResponseWithContinuation[EnvironmentSetting]" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "azure_auth": [ "user_impersonation" ] } ], + "x-ms-pageable": { "nextLinkName": "nextLink" }, + "x-ms-odata": "#/definitions/EnvironmentSetting" + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/environmentsettings/{environmentSettingName}": { + "get": { + "tags": [ "EnvironmentSettings" ], + "description": "Get environment setting", + "operationId": "EnvironmentSettings_Get", + "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": "environmentSettingName", + "in": "path", + "description": "The name of the environment Setting.", + "required": true, + "type": "string" + }, + { + "name": "$expand", + "in": "query", + "description": "Specify the $expand query. Example: 'properties($select=publishingState)'", + "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" ] } ] + }, + "put": { + "tags": [ "EnvironmentSettings" ], + "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" }, + { + "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": "environmentSettingName", + "in": "path", + "description": "The name of the environment Setting.", + "required": true, + "type": "string" + }, + { + "name": "environmentSetting", + "in": "body", + "description": "Represents settings of an environment, from which environment instances would be created", + "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" ] } ], + "x-ms-long-running-operation": true + }, + "delete": { + "tags": [ "EnvironmentSettings" ], + "description": "Delete environment setting. This operation can take a while to complete", + "operationId": "EnvironmentSettings_Delete", + "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": "environmentSettingName", + "in": "path", + "description": "The name of the environment Setting.", + "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" ] } ], + "x-ms-long-running-operation": true + }, + "patch": { + "tags": [ "EnvironmentSettings" ], + "description": "Modify properties of environment setting.", + "operationId": "EnvironmentSettings_Update", + "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": "environmentSettingName", + "in": "path", + "description": "The name of the environment Setting.", + "required": true, + "type": "string" + }, + { + "name": "environmentSetting", + "in": "body", + "description": "Represents settings of an environment, from which environment instances would be created", + "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" ] } ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/environmentsettings/{environmentSettingName}/claimAny": { + "post": { + "tags": [ "EnvironmentSettings" ], + "description": "Claims a random environment for a user in an environment settings", + "operationId": "EnvironmentSettings_ClaimAny", + "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": "environmentSettingName", + "in": "path", + "description": "The name of the environment Setting.", + "required": true, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { "description": "OK" }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "azure_auth": [ "user_impersonation" ] } ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/environmentsettings/{environmentSettingName}/environments": { + "get": { + "tags": [ "Environments" ], + "description": "List environments in a given environment setting.", + "operationId": "Environments_List", + "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": "environmentSettingName", + "in": "path", + "description": "The name of the environment Setting.", + "required": true, + "type": "string" + }, + { + "name": "$expand", + "in": "query", + "description": "Specify the $expand query. Example: 'properties($expand=networkInterface)'", + "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" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/ResponseWithContinuation[Environment]" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "azure_auth": [ "user_impersonation" ] } ], + "x-ms-pageable": { "nextLinkName": "nextLink" }, + "x-ms-odata": "#/definitions/Environment" + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/environmentsettings/{environmentSettingName}/environments/{environmentName}": { + "get": { + "tags": [ "Environments" ], + "description": "Get environment", + "operationId": "Environments_Get", + "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": "environmentSettingName", + "in": "path", + "description": "The name of the environment Setting.", + "required": true, + "type": "string" + }, + { + "name": "environmentName", + "in": "path", + "description": "The name of the environment.", + "required": true, + "type": "string" + }, + { + "name": "$expand", + "in": "query", + "description": "Specify the $expand query. Example: 'properties($expand=networkInterface)'", + "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" ] } ] + }, + "put": { + "tags": [ "Environments" ], + "description": "Create or replace an existing Environment.", + "operationId": "Environments_CreateOrUpdate", + "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": "environmentSettingName", + "in": "path", + "description": "The name of the environment Setting.", + "required": true, + "type": "string" + }, + { + "name": "environmentName", + "in": "path", + "description": "The name of the environment.", + "required": true, + "type": "string" + }, + { + "name": "environment", + "in": "body", + "description": "Represents an environment instance", + "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" ] } ] + }, + "delete": { + "tags": [ "Environments" ], + "description": "Delete environment. This operation can take a while to complete", + "operationId": "Environments_Delete", + "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": "environmentSettingName", + "in": "path", + "description": "The name of the environment Setting.", + "required": true, + "type": "string" + }, + { + "name": "environmentName", + "in": "path", + "description": "The name of the environment.", + "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" ] } ], + "x-ms-long-running-operation": true + }, + "patch": { + "tags": [ "Environments" ], + "description": "Modify properties of environments.", + "operationId": "Environments_Update", + "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": "environmentSettingName", + "in": "path", + "description": "The name of the environment Setting.", + "required": true, + "type": "string" + }, + { + "name": "environmentName", + "in": "path", + "description": "The name of the environment.", + "required": true, + "type": "string" + }, + { + "name": "environment", + "in": "body", + "description": "Represents an environment instance", + "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" ] } ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/environmentsettings/{environmentSettingName}/environments/{environmentName}/claim": { + "post": { + "tags": [ "Environments" ], + "description": "Claims the environment and assigns it to the user", + "operationId": "Environments_Claim", + "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": "environmentSettingName", + "in": "path", + "description": "The name of the environment Setting.", + "required": true, + "type": "string" + }, + { + "name": "environmentName", + "in": "path", + "description": "The name of the environment.", + "required": true, + "type": "string" + }, + { "$ref": "#/parameters/api-version" } + ], + "responses": { + "200": { "description": "OK" }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "azure_auth": [ "user_impersonation" ] } ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/environmentsettings/{environmentSettingName}/environments/{environmentName}/resetPassword": { + "post": { + "tags": [ "Environments" ], + "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" }, + { + "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": "environmentSettingName", + "in": "path", + "description": "The name of the environment Setting.", + "required": true, + "type": "string" + }, + { + "name": "environmentName", + "in": "path", + "description": "The name of the environment.", + "required": true, + "type": "string" + }, + { + "name": "resetPasswordPayload", + "in": "body", + "description": "Represents the payload for resetting passwords.", + "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" ] } ], + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/environmentsettings/{environmentSettingName}/environments/{environmentName}/start": { + "post": { + "tags": [ "Environments" ], + "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" }, + { + "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": "environmentSettingName", + "in": "path", + "description": "The name of the environment Setting.", + "required": true, + "type": "string" + }, + { + "name": "environmentName", + "in": "path", + "description": "The name of the environment.", + "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" ] } ], + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/environmentsettings/{environmentSettingName}/environments/{environmentName}/stop": { + "post": { + "tags": [ "Environments" ], + "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" }, + { + "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": "environmentSettingName", + "in": "path", + "description": "The name of the environment Setting.", + "required": true, + "type": "string" + }, + { + "name": "environmentName", + "in": "path", + "description": "The name of the environment.", + "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" ] } ], + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/environmentsettings/{environmentSettingName}/publish": { + "post": { + "tags": [ "EnvironmentSettings" ], + "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" }, + { + "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": "environmentSettingName", + "in": "path", + "description": "The name of the environment Setting.", + "required": true, + "type": "string" + }, + { + "name": "publishPayload", + "in": "body", + "description": "Payload for Publish operation on EnvironmentSetting.", + "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" ] } ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/environmentsettings/{environmentSettingName}/start": { + "post": { + "tags": [ "EnvironmentSettings" ], + "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" }, + { + "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": "environmentSettingName", + "in": "path", + "description": "The name of the environment Setting.", + "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" ] } ], + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/environmentsettings/{environmentSettingName}/stop": { + "post": { + "tags": [ "EnvironmentSettings" ], + "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" }, + { + "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": "environmentSettingName", + "in": "path", + "description": "The name of the environment Setting.", + "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" ] } ], + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/register": { + "post": { + "tags": [ "Labs" ], + "description": "Register to managed lab.", + "operationId": "Labs_Register", + "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" } + ], + "responses": { + "200": { "description": "OK" }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "azure_auth": [ "user_impersonation" ] } ] + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/users": { + "get": { + "tags": [ "Users" ], + "description": "List users in a given lab.", + "operationId": "Users_List", + "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=email)'", + "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" } + ], + "responses": { + "200": { + "description": "OK", + "schema": { "$ref": "#/definitions/ResponseWithContinuation[User]" } + }, + "default": { + "description": "BadRequest", + "schema": { "$ref": "#/definitions/CloudError" } + } + }, + "security": [ { "azure_auth": [ "user_impersonation" ] } ], + "x-ms-pageable": { "nextLinkName": "nextLink" }, + "x-ms-odata": "#/definitions/User" + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LabServices/labaccounts/{labAccountName}/labs/{labName}/users/{userName}": { + "get": { + "tags": [ "Users" ], + "description": "Get user", + "operationId": "Users_Get", + "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": "userName", + "in": "path", + "description": "The name of the user.", + "required": true, + "type": "string" + }, + { + "name": "$expand", + "in": "query", + "description": "Specify the $expand query. Example: 'properties($select=email)'", + "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" ] } ] + }, + "put": { + "tags": [ "Users" ], + "description": "Create or replace an existing User.", + "operationId": "Users_CreateOrUpdate", + "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": "userName", + "in": "path", + "description": "The name of the user.", + "required": true, + "type": "string" + }, + { + "name": "user", + "in": "body", + "description": "The User registered to a lab", + "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" ] } ] + }, + "delete": { + "tags": [ "Users" ], + "description": "Delete user. This operation can take a while to complete", + "operationId": "Users_Delete", + "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": "userName", + "in": "path", + "description": "The name of the user.", + "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" ] } ], + "x-ms-long-running-operation": true + }, + "patch": { + "tags": [ "Users" ], + "description": "Modify properties of users.", + "operationId": "Users_Update", + "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": "userName", + "in": "path", + "description": "The name of the user.", + "required": true, + "type": "string" + }, + { + "name": "user", + "in": "body", + "description": "The User registered to a lab", + "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" ] } ] + } + } + }, + "definitions": { + "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" } + } + } + }, + "CloudError": { + "description": "Error from a REST request.", + "type": "object", + "properties": { "error": { "$ref": "#/definitions/CloudErrorBody" } }, + "x-ms-external": true + }, + "CloudErrorBody": { + "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" } + } + }, + "x-ms-external": true + }, + "CreateLabProperties": { + "description": "Properties for creating a managed lab and a default environment setting", + "required": [ "labCreationParameters", "name" ], + "type": "object", + "properties": { + "environmentSettingCreationParameters": { + "$ref": "#/definitions/EnvironmentSettingCreationParameters", + "description": "Settings related to creating an environment setting" + }, + "labCreationParameters": { + "$ref": "#/definitions/LabCreationParameters", + "description": "Settings related to creating a lab" + }, + "name": { + "description": "The name of the resource", + "type": "string" + }, + "location": { + "description": "The location of the resource", + "type": "string" + }, + "tags": { + "description": "The tags of the resource.", + "type": "object", + "additionalProperties": { "type": "string" } + } + } + }, + "Environment": { + "description": "Represents an environment instance", + "required": [ "properties" ], + "type": "object", + "allOf": [ { "$ref": "#/definitions/Resource" } ], + "properties": { + "properties": { + "$ref": "#/definitions/EnvironmentProperties", + "description": "The properties of the Environment resource", + "x-ms-client-flatten": true + } + } + }, + "EnvironmentDetails": { + "description": "This represents the details about a User's environment and its state.", + "type": "object", + "properties": { + "name": { + "description": "Name of the Environment", + "type": "string", + "readOnly": true + }, + "description": { + "description": "Description of the Environment", + "type": "string", + "readOnly": true + }, + "id": { + "description": "Resource Id of the environment", + "type": "string", + "readOnly": true + }, + "provisioningState": { + "description": "The provisioning state of the environment. This also includes LabIsFull and NotYetProvisioned status.", + "type": "string", + "readOnly": true + }, + "virtualMachineDetails": { + "$ref": "#/definitions/VirtualMachineDetails", + "description": "Details of backing DTL virtual machine with compute and network details.", + "readOnly": true + }, + "latestOperationResult": { + "$ref": "#/definitions/LatestOperationResult", + "description": "The details of the latest operation. ex: status, error", + "readOnly": true + }, + "environmentState": { + "description": "Publishing state of the environment setting Possible values are Creating, Created, Failed", + "type": "string", + "readOnly": true + }, + "totalUsage": { + "format": "duration", + "description": "How long the environment has been used by a lab user", + "type": "string", + "readOnly": true + }, + "passwordLastReset": { + "format": "date-time", + "description": "When the password was last reset on the environment.", + "type": "string", + "readOnly": true + } + } + }, + "EnvironmentFragment": { + "description": "Represents an environment instance", + "type": "object", + "allOf": [ { "$ref": "#/definitions/Resource" } ], + "properties": { + "properties": { + "$ref": "#/definitions/EnvironmentPropertiesFragment", + "description": "The properties of the Environment resource", + "x-ms-client-flatten": true + } + } + }, + "EnvironmentOperationsPayload": { + "description": "Represents payload for any Environment operations like get, start, stop, connect", + "required": [ "environmentId" ], + "type": "object", + "properties": { + "environmentId": { + "description": "The resourceId of the environment", + "type": "string" + } + } + }, + "EnvironmentProperties": { + "description": "Properties of an environment", + "type": "object", + "properties": { + "resourceSets": { + "$ref": "#/definitions/ResourceSet", + "description": "The set of a VM and the setting id it was created for" + }, + "claimedByUserObjectId": { + "description": "The AAD object Id of the user who has claimed the environment", + "type": "string", + "readOnly": true + }, + "claimedByUserPrincipalId": { + "description": "The user principal Id of the user who has claimed the environment", + "type": "string", + "readOnly": true + }, + "claimedByUserName": { + "description": "The name or email address of the user who has claimed the environment", + "type": "string", + "readOnly": true + }, + "isClaimed": { + "description": "Is the environment claimed or not", + "type": "boolean", + "readOnly": true + }, + "lastKnownPowerState": { + "description": "Last known power state of the environment", + "type": "string", + "readOnly": true + }, + "networkInterface": { + "$ref": "#/definitions/NetworkInterface", + "description": "Network details of the environment", + "readOnly": true + }, + "totalUsage": { + "format": "duration", + "description": "How long the environment has been used by a lab user", + "type": "string", + "readOnly": true + }, + "passwordLastReset": { + "format": "date-time", + "description": "When the password was last reset on the environment.", + "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 + } + } + }, + "EnvironmentPropertiesFragment": { + "description": "Properties of an environment", + "type": "object", + "properties": { + "resourceSets": { + "$ref": "#/definitions/ResourceSetFragment", + "description": "The set of a VM and the setting id it was created for" + }, + "provisioningState": { + "description": "The provisioning status of the resource.", + "type": "string" + }, + "uniqueIdentifier": { + "description": "The unique immutable identifier of a resource (Guid).", + "type": "string" + } + } + }, + "EnvironmentSetting": { + "description": "Represents settings of an environment, from which environment instances would be created", + "required": [ "properties" ], + "type": "object", + "allOf": [ { "$ref": "#/definitions/Resource" } ], + "properties": { + "properties": { + "$ref": "#/definitions/EnvironmentSettingProperties", + "description": "The properties of the Environment Setting resource", + "x-ms-client-flatten": true + } + } + }, + "EnvironmentSettingCreationParameters": { + "description": "Settings related to creating an environment setting", + "required": [ "resourceSettingCreationParameters" ], + "type": "object", + "properties": { + "resourceSettingCreationParameters": { + "$ref": "#/definitions/ResourceSettingCreationParameters", + "description": "The resource specific settings" + } + } + }, + "EnvironmentSettingFragment": { + "description": "Represents settings of an environment, from which environment instances would be created", + "type": "object", + "allOf": [ { "$ref": "#/definitions/Resource" } ], + "properties": { + "properties": { + "$ref": "#/definitions/EnvironmentSettingPropertiesFragment", + "description": "The properties of the Environment Setting resource", + "x-ms-client-flatten": true + } + } + }, + "EnvironmentSettingProperties": { + "description": "Properties of an environment setting", + "required": [ "resourceSettings" ], + "type": "object", + "properties": { + "publishingState": { + "description": "Describes the readiness of this environment setting", + "enum": [ "Draft", "Publishing", "Published", "PublishFailed", "Scaling" ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "name": "PublishingState", + "modelAsString": true, + "values": [ + { + "value": "Draft", + "description": "Initial state of an environment setting." + }, + { + "value": "Publishing", + "description": "Currently provisioning resources." + }, + { + "value": "Published", + "description": "All resources are currently provisioned." + }, + { + "value": "PublishFailed", + "description": "Failed to provision all the necessary resources." + }, + { + "value": "Scaling", + "description": "Currently provisioning resources without recreating VM image." + } + ] + } + }, + "configurationState": { + "description": "Describes the user's progress in configuring their environment setting", + "enum": [ "NotApplicable", "Completed" ], + "type": "string", + "x-ms-enum": { + "name": "ConfigurationState", + "modelAsString": true, + "values": [ + { + "value": "NotApplicable", + "description": "User either hasn't started configuring their template\r\nor they haven't started the configuration process." + }, + { + "value": "Completed", + "description": "User is finished modifying the template." + } + ] + } + }, + "description": { + "description": "Describes the environment and its resource settings", + "type": "string" + }, + "title": { + "description": "Brief title describing the environment and its resource settings", + "type": "string" + }, + "resourceSettings": { + "$ref": "#/definitions/ResourceSettings", + "description": "The resource specific settings" + }, + "lastChanged": { + "format": "date-time", + "description": "Time when the template VM was last changed.", + "type": "string", + "readOnly": true + }, + "lastPublished": { + "format": "date-time", + "description": "Time when the template VM was last sent for publishing.", + "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 + } + } + }, + "EnvironmentSettingPropertiesFragment": { + "description": "Properties of an environment setting", + "type": "object", + "properties": { + "configurationState": { + "description": "Describes the user's progress in configuring their environment setting", + "enum": [ "NotApplicable", "Completed" ], + "type": "string", + "x-ms-enum": { + "name": "ConfigurationState", + "modelAsString": true, + "values": [ + { + "value": "NotApplicable", + "description": "User either hasn't started configuring their template\r\nor they haven't started the configuration process." + }, + { + "value": "Completed", + "description": "User is finished modifying the template." + } + ] + } + }, + "description": { + "description": "Describes the environment and its resource settings", + "type": "string" + }, + "title": { + "description": "Brief title describing the environment and its resource settings", + "type": "string" + }, + "resourceSettings": { + "$ref": "#/definitions/ResourceSettingsFragment", + "description": "The resource specific settings" + }, + "provisioningState": { + "description": "The provisioning status of the resource.", + "type": "string" + }, + "uniqueIdentifier": { + "description": "The unique immutable identifier of a resource (Guid).", + "type": "string" + } + } + }, + "EnvironmentSize": { + "description": "Represents a size category supported by this Lab Account (small, medium or large)", + "type": "object", + "properties": { + "name": { + "description": "The size category", + "enum": [ "Basic", "Standard", "Performance" ], + "type": "string", + "x-ms-enum": { + "name": "ManagedLabVmSize", + "modelAsString": true, + "values": [ + { + "value": "Basic", + "description": "The base VM size" + }, + { + "value": "Standard", + "description": "The standard or default VM size" + }, + { + "value": "Performance", + "description": "The most performant VM size" + } + ] + } + }, + "vmSizes": { + "description": "Represents a set of compute sizes that can serve this given size type", + "type": "array", + "items": { "$ref": "#/definitions/SizeInfo" } + }, + "maxPrice": { + "format": "decimal", + "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.", + "type": "number", + "readOnly": true + }, + "minNumberOfCores": { + "format": "int32", + "description": "The number of cores a VM of this size has. This is the minimum number of cores within this tier.", + "type": "integer", + "readOnly": true + }, + "minMemory": { + "format": "double", + "description": "The amount of memory available (in GB). This is the minimum amount of memory within this tier.", + "type": "number", + "readOnly": true + } + } + }, + "EnvironmentSizeFragment": { + "description": "Represents a size category supported by this Lab Account (small, medium or large)", + "type": "object", + "properties": { + "name": { + "description": "The size category", + "enum": [ "Basic", "Standard", "Performance" ], + "type": "string", + "x-ms-enum": { + "name": "ManagedLabVmSize", + "modelAsString": true, + "values": [ + { + "value": "Basic", + "description": "The base VM size" + }, + { + "value": "Standard", + "description": "The standard or default VM size" + }, + { + "value": "Performance", + "description": "The most performant VM size" + } + ] + } + }, + "vmSizes": { + "description": "Represents a set of compute sizes that can serve this given size type", + "type": "array", + "items": { "$ref": "#/definitions/SizeInfoFragment" } + } + } + }, + "GalleryImage": { + "description": "Represents an image from the Azure Marketplace", + "type": "object", + "allOf": [ { "$ref": "#/definitions/Resource" } ], + "properties": { + "properties": { + "$ref": "#/definitions/GalleryImageProperties", + "description": "The gallery image properties", + "x-ms-client-flatten": true + } + } + }, + "GalleryImageFragment": { + "description": "Represents an image from the Azure Marketplace", + "type": "object", + "allOf": [ { "$ref": "#/definitions/Resource" } ], + "properties": { + "properties": { + "$ref": "#/definitions/GalleryImagePropertiesFragment", + "description": "The gallery image properties", + "x-ms-client-flatten": true + } + } + }, + "GalleryImageProperties": { + "description": "The gallery image properties", + "type": "object", + "properties": { + "author": { + "description": "The author of the gallery image.", + "type": "string", + "readOnly": true + }, + "createdDate": { + "format": "date-time", + "description": "The creation date of the gallery image.", + "type": "string", + "readOnly": true + }, + "description": { + "description": "The description of the gallery image.", + "type": "string", + "readOnly": true + }, + "imageReference": { + "$ref": "#/definitions/GalleryImageReference", + "description": "The image reference of the gallery image.", + "readOnly": true + }, + "icon": { + "description": "The icon of the gallery image.", + "type": "string", + "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" + }, + "planId": { + "description": "The third party plan that applies to this image", + "type": "string", + "readOnly": true + }, + "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" + }, + "latestOperationResult": { + "$ref": "#/definitions/LatestOperationResult", + "description": "The details of the latest operation. ex: status, error", + "readOnly": true + } + } + }, + "GalleryImagePropertiesFragment": { + "description": "The gallery image properties", + "type": "object", + "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" + } + } + }, + "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" + } + } + }, + "GalleryImageReferenceFragment": { + "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" + } + } + }, + "GetEnvironmentResponse": { + "description": "Represents the environments details", + "type": "object", + "properties": { + "environment": { + "$ref": "#/definitions/EnvironmentDetails", + "description": "Details of the environment", + "readOnly": true + } + } + }, + "GetPersonalPreferencesResponse": { + "description": "Represents the PersonalPreferences for the user", + "type": "object", + "properties": { + "id": { + "description": "Id to be used by the cache orchestrator", + "type": "string" + }, + "favoriteLabResourceIds": { + "description": "Array of favorite lab resource ids", + "type": "array", + "items": { "type": "string" } + } + } + }, + "GetRegionalAvailabilityResponse": { + "description": "The response model from the GetRegionalAvailability action", + "type": "object", + "properties": { + "regionalAvailability": { + "description": "Availability information for different size categories per region", + "type": "array", + "items": { "$ref": "#/definitions/RegionalAvailability" } + } + } + }, + "Lab": { + "description": "Represents a lab.", + "type": "object", + "allOf": [ { "$ref": "#/definitions/Resource" } ], + "properties": { + "properties": { + "$ref": "#/definitions/LabProperties", + "description": "The properties of the resource.", + "x-ms-client-flatten": true + } + } + }, + "LabAccount": { + "description": "Represents a lab account.", + "type": "object", + "allOf": [ { "$ref": "#/definitions/Resource" } ], + "properties": { + "properties": { + "$ref": "#/definitions/LabAccountProperties", + "description": "The properties of the resource.", + "x-ms-client-flatten": true + } + } + }, + "LabAccountFragment": { + "description": "Represents a lab account.", + "type": "object", + "allOf": [ { "$ref": "#/definitions/Resource" } ], + "properties": { + "properties": { + "$ref": "#/definitions/LabAccountPropertiesFragment", + "description": "The properties of the resource.", + "x-ms-client-flatten": true + } + } + }, + "LabAccountProperties": { + "description": "Properties of a Lab Account.", + "type": "object", + "properties": { + "sizeConfiguration": { + "$ref": "#/definitions/SizeConfigurationProperties", + "description": "Represents the size configuration under the lab account", + "readOnly": true + }, + "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" + }, + "latestOperationResult": { + "$ref": "#/definitions/LatestOperationResult", + "description": "The details of the latest operation. ex: status, error", + "readOnly": true + } + } + }, + "LabAccountPropertiesFragment": { + "description": "Properties of a Lab Account.", + "type": "object", + "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" + } + } + }, + "LabCreationParameters": { + "description": "Settings related to creating a lab", + "type": "object", + "properties": { + "maxUsersInLab": { + "format": "int32", + "description": "Maximum number of users allowed in the lab.", + "type": "integer" + } + } + }, + "LabDetails": { + "description": "This represents the details about a lab that the User is in, and its state.", + "type": "object", + "properties": { + "name": { + "description": "Name of the lab", + "type": "string" + }, + "provisioningState": { + "description": "The provisioning state of the lab.", + "type": "string" + }, + "id": { + "description": "The Id of the lab.", + "type": "string" + }, + "usageQuota": { + "format": "duration", + "description": "The maximum duration a user can use a VM in this lab.", + "type": "string", + "readOnly": true + } + } + }, + "LabFragment": { + "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 + } + } + }, + "LabProperties": { + "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 + } + } + }, + "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" + } + } + }, + "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 + } + } + }, + "LatestOperationResultFragment": { + "description": "Details of the status of an operation.", + "type": "object", + "properties": {} + }, + "ListEnvironmentsPayload": { + "description": "Represents the payload to list environments owned by a user", + "type": "object", + "properties": { + "labId": { + "description": "The resource Id of the lab", + "type": "string" + } + } + }, + "ListEnvironmentsResponse": { + "description": "Represents the list of environments owned by a user", + "type": "object", + "properties": { + "environments": { + "description": "List of all the evironments", + "type": "array", + "items": { "$ref": "#/definitions/EnvironmentDetails" } + } + } + }, + "ListLabsResponse": { + "description": "Lists the labs owned by a user", + "type": "object", + "properties": { + "labs": { + "description": "List of all the labs", + "type": "array", + "items": { "$ref": "#/definitions/LabDetails" } + } + } + }, + "NetworkInterface": { + "description": "Network details of the environment", + "type": "object", + "properties": { + "privateIpAddress": { + "description": "PrivateIp address of the Compute VM", + "type": "string", + "readOnly": true + }, + "sshAuthority": { + "description": "Connection information for Linux", + "type": "string", + "readOnly": true + }, + "rdpAuthority": { + "description": "Connection information for Windows", + "type": "string", + "readOnly": true + }, + "username": { + "description": "Username of the VM", + "type": "string", + "readOnly": true + } + } + }, + "NetworkInterfaceFragment": { + "description": "Network details of the environment", + "type": "object", + "properties": {} + }, + "OperationBatchStatusPayload": { + "description": "Payload to get the status of an operation", + "required": [ "urls" ], + "type": "object", + "properties": { + "urls": { + "description": "The operation url of long running operation", + "type": "array", + "items": { "type": "string" } + } + } + }, + "OperationBatchStatusResponse": { + "description": "Status Details of the long running operation for an environment", + "type": "object", + "properties": { + "items": { + "description": "Gets a collection of items that contain the operation url and status.", + "type": "array", + "items": { "$ref": "#/definitions/OperationBatchStatusResponseItem" }, + "readOnly": true + } + } + }, + "OperationBatchStatusResponseItem": { + "description": "Represents the status of an operation that used the batch API.", + "type": "object", + "properties": { + "operationUrl": { + "description": "status of the long running operation for an environment", + "type": "string", + "readOnly": true + }, + "status": { + "description": "status of the long running operation for an environment", + "type": "string", + "readOnly": true + } + } + }, + "OperationError": { + "description": "Error details for the operation in case of a failure.", + "type": "object", + "properties": { + "code": { + "description": "The error code of the operation error.", + "type": "string" + }, + "message": { + "description": "The error message of the operation error.", + "type": "string" + } + } + }, + "OperationMetadata": { + "description": "The REST API operation supported by ManagedLab ResourceProvider.", + "type": "object", + "properties": { + "name": { + "description": "Operation name: {provider}/{resource}/{operation}", + "type": "string" + }, + "display": { + "$ref": "#/definitions/OperationMetadataDisplay", + "description": "The object that describes the operations" + } + } + }, + "OperationMetadataDisplay": { + "description": "The object that describes the operations", + "type": "object", + "properties": { + "provider": { + "description": "Friendly name of the resource provider", + "type": "string" + }, + "resource": { + "description": "Resource type on which the operation is performed.", + "type": "string" + }, + "operation": { + "description": "Operation type: read, write, delete, listKeys/action, etc.", + "type": "string" + }, + "description": { + "description": "Friendly name of the operation", + "type": "string" + } + } + }, + "OperationResult": { + "description": "An Operation Result", + "type": "object", + "properties": { + "status": { + "description": "The operation status.", + "type": "string" + }, + "error": { + "$ref": "#/definitions/OperationError", + "description": "Error details for the operation in case of a failure." + } + } + }, + "OperationStatusPayload": { + "description": "Payload to get the status of an operation", + "required": [ "operationUrl" ], + "type": "object", + "properties": { + "operationUrl": { + "description": "The operation url of long running operation", + "type": "string" + } + } + }, + "OperationStatusResponse": { + "description": "Status Details of the long running operation for an environment", + "type": "object", + "properties": { + "status": { + "description": "status of the long running operation for an environment", + "type": "string", + "readOnly": true + } + } + }, + "PersonalPerferencesOperationsPayload": { + "description": "Represents payload for any Environment operations like get, start, stop, connect", + "type": "object", + "properties": { + "labAccountResourceId": { + "description": "Resource Id of the lab account", + "type": "string" + }, + "addRemove": { + "description": "Enum indicating if user is adding or removing a favorite lab", + "enum": [ "Add", "Remove" ], + "type": "string", + "x-ms-enum": { + "name": "AddRemove", + "modelAsString": true, + "values": [ + { + "value": "Add", + "description": "Indicates that a user is adding a favorite lab" + }, + { + "value": "Remove", + "description": "Indicates that a user is removing a favorite lab" + } + ] + } + }, + "labResourceId": { + "description": "Resource Id of the lab to add/remove from the favorites list", + "type": "string" + } + } + }, + "ProviderOperationResult": { + "description": "Result of the request to list REST API operations", + "type": "object", + "properties": { + "value": { + "description": "List of operations supported by the resource provider.", + "type": "array", + "items": { "$ref": "#/definitions/OperationMetadata" } + }, + "nextLink": { + "description": "URL to get the next set of operation list results if there are any.", + "type": "string", + "readOnly": true + } + } + }, + "PublishPayload": { + "description": "Payload for Publish operation on EnvironmentSetting.", + "type": "object", + "properties": { + "useExistingImage": { + "description": "Whether to use existing VM custom image when publishing.", + "type": "boolean" + } + } + }, + "ReferenceVm": { + "description": "Details of a Reference Vm", + "required": [ "userName" ], + "type": "object", + "properties": { + "userName": { + "description": "The username of the virtual machine", + "type": "string" + }, + "password": { + "description": "The password of the virtual machine. This will be set to null in GET resource API", + "type": "string" + }, + "vmStateDetails": { + "$ref": "#/definitions/VmStateDetails", + "description": "The state details for the reference virtual machine.", + "readOnly": true + }, + "vmResourceId": { + "description": "VM resource Id for the environment", + "type": "string", + "readOnly": true + } + } + }, + "ReferenceVmCreationParameters": { + "description": "Creation parameters for Reference Vm", + "required": [ "userName", "password" ], + "type": "object", + "properties": { + "userName": { + "description": "The username of the virtual machine", + "type": "string" + }, + "password": { + "description": "The password of the virtual machine.", + "type": "string" + } + } + }, + "ReferenceVmFragment": { + "description": "Details of a Reference Vm", + "type": "object", + "properties": { + "userName": { + "description": "The username of the virtual machine", + "type": "string" + }, + "password": { + "description": "The password of the virtual machine. This will be set to null in GET resource API", + "type": "string" + } + } + }, + "RegionalAvailability": { + "description": "The availability information of sizes across regions", + "type": "object", + "properties": { + "region": { + "description": "Corresponding region", + "type": "string" + }, + "sizeAvailabilities": { + "description": "List of all the size information for the region", + "type": "array", + "items": { "$ref": "#/definitions/SizeAvailability" } + } + } + }, + "RegisterPayload": { + "description": "Represents payload for Register action.", + "type": "object", + "properties": { + "registrationCode": { + "description": "The registration code of the lab.", + "type": "string" + } + } + }, + "ResetPasswordPayload": { + "description": "Represents the payload for resetting passwords.", + "required": [ "environmentId" ], + "type": "object", + "properties": { + "environmentId": { + "description": "The resourceId of the environment", + "type": "string" + }, + "username": { + "description": "The username for which the password will be reset.", + "type": "string" + }, + "password": { + "description": "The password to assign to the user specified in", + "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 + }, + "ResourceSet": { + "description": "Represents a VM and the setting Id it was created for.", + "type": "object", + "properties": { + "vmResourceId": { + "description": "VM resource Id for the environment", + "type": "string" + }, + "resourceSettingId": { + "description": "resourceSettingId for the environment", + "type": "string" + } + } + }, + "ResourceSetFragment": { + "description": "Represents a VM and the setting Id it was created for.", + "type": "object", + "properties": { + "vmResourceId": { + "description": "VM resource Id for the environment", + "type": "string" + }, + "resourceSettingId": { + "description": "resourceSettingId for the environment", + "type": "string" + } + } + }, + "ResourceSettingCreationParameters": { + "description": "Represents resource specific settings", + "required": [ "galleryImageResourceId", "referenceVmCreationParameters" ], + "type": "object", + "properties": { + "location": { + "description": "The location where the virtual machine will live", + "type": "string" + }, + "name": { + "description": "The name of the resource setting", + "type": "string" + }, + "galleryImageResourceId": { + "description": "The resource id of the gallery image used for creating the virtual machine", + "type": "string" + }, + "size": { + "description": "The size of the virtual machine", + "enum": [ "Basic", "Standard", "Performance" ], + "type": "string", + "x-ms-enum": { + "name": "ManagedLabVmSize", + "modelAsString": true, + "values": [ + { + "value": "Basic", + "description": "The base VM size" + }, + { + "value": "Standard", + "description": "The standard or default VM size" + }, + { + "value": "Performance", + "description": "The most performant VM size" + } + ] + } + }, + "referenceVmCreationParameters": { + "$ref": "#/definitions/ReferenceVmCreationParameters", + "description": "Creation parameters for Reference Vm" + } + } + }, + "ResourceSettings": { + "description": "Represents resource specific settings", + "required": [ "referenceVm" ], + "type": "object", + "properties": { + "id": { + "description": "The unique id of the resource setting", + "type": "string", + "readOnly": true + }, + "galleryImageResourceId": { + "description": "The resource id of the gallery image used for creating the virtual machine", + "type": "string" + }, + "imageName": { + "description": "The name of the image used to created the environment setting", + "type": "string", + "readOnly": true + }, + "size": { + "description": "The size of the virtual machine", + "enum": [ "Basic", "Standard", "Performance" ], + "type": "string", + "x-ms-enum": { + "name": "ManagedLabVmSize", + "modelAsString": true, + "values": [ + { + "value": "Basic", + "description": "The base VM size" + }, + { + "value": "Standard", + "description": "The standard or default VM size" + }, + { + "value": "Performance", + "description": "The most performant VM size" + } + ] + } + }, + "cores": { + "format": "int32", + "description": "The translated compute cores of the virtual machine", + "type": "integer", + "readOnly": true + }, + "referenceVm": { + "$ref": "#/definitions/ReferenceVm", + "description": "Details specific to Reference Vm" + } + } + }, + "ResourceSettingsFragment": { + "description": "Represents resource specific settings", + "type": "object", + "properties": { + "galleryImageResourceId": { + "description": "The resource id of the gallery image used for creating the virtual machine", + "type": "string" + }, + "size": { + "description": "The size of the virtual machine", + "enum": [ "Basic", "Standard", "Performance" ], + "type": "string", + "x-ms-enum": { + "name": "ManagedLabVmSize", + "modelAsString": true, + "values": [ + { + "value": "Basic", + "description": "The base VM size" + }, + { + "value": "Standard", + "description": "The standard or default VM size" + }, + { + "value": "Performance", + "description": "The most performant VM size" + } + ] + } + }, + "referenceVm": { + "$ref": "#/definitions/ReferenceVmFragment", + "description": "Details specific to Reference Vm" + } + } + }, + "ResponseWithContinuation[Environment]": { + "description": "The response of a list operation.", + "type": "object", + "properties": { + "value": { + "description": "Results of the list operation.", + "type": "array", + "items": { "$ref": "#/definitions/Environment" } + }, + "nextLink": { + "description": "Link for next set of results.", + "type": "string" + } + } + }, + "ResponseWithContinuation[EnvironmentSetting]": { + "description": "The response of a list operation.", + "type": "object", + "properties": { + "value": { + "description": "Results of the list operation.", + "type": "array", + "items": { "$ref": "#/definitions/EnvironmentSetting" } + }, + "nextLink": { + "description": "Link for next set of results.", + "type": "string" + } + } + }, + "ResponseWithContinuation[GalleryImage]": { + "description": "The response of a list operation.", + "type": "object", + "properties": { + "value": { + "description": "Results of the list operation.", + "type": "array", + "items": { "$ref": "#/definitions/GalleryImage" } + }, + "nextLink": { + "description": "Link for next set of results.", + "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" } + }, + "nextLink": { + "description": "Link for next set of results.", + "type": "string" + } + } + }, + "ResponseWithContinuation[LabAccount]": { + "description": "The response of a list operation.", + "type": "object", + "properties": { + "value": { + "description": "Results of the list operation.", + "type": "array", + "items": { "$ref": "#/definitions/LabAccount" } + }, + "nextLink": { + "description": "Link for next set of results.", + "type": "string" + } + } + }, + "ResponseWithContinuation[User]": { + "description": "The response of a list operation.", + "type": "object", + "properties": { + "value": { + "description": "Results of the list operation.", + "type": "array", + "items": { "$ref": "#/definitions/User" } + }, + "nextLink": { + "description": "Link for next set of results.", + "type": "string" + } + } + }, + "SizeAvailability": { + "description": "Represents the size information", + "type": "object", + "properties": { + "sizeCategory": { + "description": "The category of the size (Basic, Standard, Performance).", + "enum": [ "Basic", "Standard", "Performance" ], + "type": "string", + "x-ms-enum": { + "name": "ManagedLabVmSize", + "modelAsString": true, + "values": [ + { + "value": "Basic", + "description": "The base VM size" + }, + { + "value": "Standard", + "description": "The standard or default VM size" + }, + { + "value": "Performance", + "description": "The most performant VM size" + } + ] + } + }, + "isAvailable": { + "description": "Whether or not this size category is available", + "type": "boolean" + } + } + }, + "SizeConfigurationProperties": { + "description": "Represents the size configuration under the lab account", + "type": "object", + "properties": { + "environmentSizes": { + "description": "Represents a list of size categories supported by this Lab Account (Small, Medium, Large)", + "type": "array", + "items": { "$ref": "#/definitions/EnvironmentSize" } + } + } + }, + "SizeConfigurationPropertiesFragment": { + "description": "Represents the size configuration under the lab account", + "type": "object", + "properties": { + "environmentSizes": { + "description": "Represents a list of size categories supported by this Lab Account (Small, Medium, Large)", + "type": "array", + "items": { "$ref": "#/definitions/EnvironmentSizeFragment" } + } + } + }, + "SizeInfo": { + "description": "Contains detailed information about a size", + "type": "object", + "properties": { + "computeSize": { + "description": "Represents the actual compute size, e.g. Standard_A2_v2.", + "type": "string" + }, + "price": { + "format": "decimal", + "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.", + "type": "number" + }, + "numberOfCores": { + "format": "int32", + "description": "The number of cores a VM of this size has.", + "type": "integer" + }, + "memory": { + "format": "double", + "description": "The amount of memory available (in GB).", + "type": "number" + } + } + }, + "SizeInfoFragment": { + "description": "Contains detailed information about a size", + "type": "object", + "properties": { + "computeSize": { + "description": "Represents the actual compute size, e.g. Standard_A2_v2.", + "type": "string" + }, + "price": { + "format": "decimal", + "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.", + "type": "number" + }, + "numberOfCores": { + "format": "int32", + "description": "The number of cores a VM of this size has.", + "type": "integer" + }, + "memory": { + "format": "double", + "description": "The amount of memory available (in GB).", + "type": "number" + } + } + }, + "User": { + "description": "The User registered to a lab", + "type": "object", + "allOf": [ { "$ref": "#/definitions/Resource" } ], + "properties": { + "properties": { + "$ref": "#/definitions/UserProperties", + "description": "These are the properties for the user registered under a lab.", + "x-ms-client-flatten": true + } + } + }, + "UserFragment": { + "description": "The User registered to a lab", + "type": "object", + "allOf": [ { "$ref": "#/definitions/Resource" } ], + "properties": { + "properties": { + "$ref": "#/definitions/UserPropertiesFragment", + "description": "These are the properties for the user registered under a lab.", + "x-ms-client-flatten": true + } + } + }, + "UserProperties": { + "description": "Lab User properties", + "type": "object", + "properties": { + "email": { + "description": "The user email address, as it was specified during registration.", + "type": "string", + "readOnly": true + }, + "familyName": { + "description": "The user family name, as it was specified during registration.", + "type": "string", + "readOnly": true + }, + "givenName": { + "description": "The user given name, as it was specified during registration.", + "type": "string", + "readOnly": true + }, + "tenantId": { + "description": "The user tenant ID, as it was specified during registration.", + "type": "string", + "readOnly": true + }, + "totalUsage": { + "format": "duration", + "description": "How long the user has used his VMs in this 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 + } + } + }, + "UserPropertiesFragment": { + "description": "Lab User properties", + "type": "object", + "properties": { + "provisioningState": { + "description": "The provisioning status of the resource.", + "type": "string" + }, + "uniqueIdentifier": { + "description": "The unique immutable identifier of a resource (Guid).", + "type": "string" + } + } + }, + "VirtualMachineDetails": { + "description": "Details of the backing virtual machine.", + "type": "object", + "properties": { + "provisioningState": { + "description": "Provisioning state of the Dtl VM", + "type": "string", + "readOnly": true + }, + "rdpAuthority": { + "description": "Connection information for Windows", + "type": "string", + "readOnly": true + }, + "sshAuthority": { + "description": "Connection information for Linux", + "type": "string", + "readOnly": true + }, + "privateIpAddress": { + "description": "PrivateIp address of the compute VM", + "type": "string", + "readOnly": true + }, + "userName": { + "description": "Compute VM login user name", + "type": "string", + "readOnly": true + }, + "lastKnownPowerState": { + "description": "Last known compute power state captured in DTL", + "type": "string", + "readOnly": true + } + } + }, + "VmStateDetails": { + "description": "Details about the state of the reference virtual machine.", + "type": "object", + "properties": { + "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", + "readOnly": true + }, + "sshAuthority": { + "description": "The SshAuthority property is a server DNS host name or IP address followed by the service port number for SSH.", + "type": "string", + "readOnly": true + }, + "powerState": { + "description": "The power state of the reference virtual machine.", + "type": "string", + "readOnly": true + }, + "lastKnownPowerState": { + "description": "Last known compute power state captured in DTL", + "type": "string", + "readOnly": true + } + } + }, + "VmStateDetailsFragment": { + "description": "Details about the state of the reference virtual machine.", + "type": "object", + "properties": {} + } + }, + "parameters": { + "api-version": { + "name": "api-version", + "in": "query", + "description": "Client API version.", + "required": true, + "type": "string", + "default": "2018-10-15" + }, + "locationName": { + "name": "locationName", + "in": "path", + "description": "The name of the location.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "resourceGroupName": { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "subscriptionId": { + "name": "subscriptionId", + "in": "path", + "description": "The subscription ID.", + "required": true, + "type": "string" + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "description": "OAuth2 Implicit Grant", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { "user_impersonation": "Access Microsoft Azure" } + } + }, + "security": [ { "azure_auth": [ "user_impersonation" ] } ] +} \ No newline at end of file diff --git a/specification/labservices/resource-manager/Microsoft.LabServices/stable/2018-10-15/examples/Labs_List.json b/specification/labservices/resource-manager/Microsoft.LabServices/stable/2018-10-15/examples/Labs_List.json new file mode 100644 index 000000000000..2d857eb5db18 --- /dev/null +++ b/specification/labservices/resource-manager/Microsoft.LabServices/stable/2018-10-15/examples/Labs_List.json @@ -0,0 +1,60 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "labAccountName": "{devtestlab-name}", + "api-version": "2018-10-15" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "maxUsersInLab": 1, + "userQuota": 100, + "invitationCode": "{invitationCode}", + "createdByObjectId": "11111111-1111-1111-1111-111111111111", + "userAccessMode": "Restricted", + "createdByUserPrincipalName": "YourNameHere@domain.com", + "createdDate": "2018-10-09T21:05:25.0408858+00:00", + "provisioningState": "Succeeded", + "uniqueIdentifier": "22222222-2222-2222-2222-222222222222", + "latestOperationResult": {} + }, + "id": "/subscriptions/{subscription-id}/resourcegroups/myResourceGroup/providers/microsoft.labservices/labaccounts/{devtestlab-name}/labs/{labName}", + "name": "{labName}", + "type": "Microsoft.LabServices/labAccounts/labs", + "location": "australiaeast", + "tags": { + "Name": "CreatedDate", + "Value": "8/30/118 9:37:32 PM" + } + }, + { + "properties": { + "maxUsersInLab": 1, + "userQuota": 100, + "invitationCode": "{invitationCode}", + "createdByObjectId": "11111111-1111-1111-1111-111111111111", + "userAccessMode": "Restricted", + "createdByUserPrincipalName": "YourNameHere@domain.com", + "createdDate": "2018-10-09T21:29:47.2453342+00:00", + "provisioningState": "Succeeded", + "uniqueIdentifier": "22222222-2222-2222-2222-222222222222", + "latestOperationResult": {} + }, + "id": "/subscriptions/{subscription-id}/resourcegroups/myResourceGroup/providers/microsoft.labservices/labaccounts/{devtestlab-name}/labs/{labName}", + "name": "{labName}", + "type": "Microsoft.LabServices/labAccounts/labs", + "location": "australiaeast", + "tags": { + "Value": "8/30/118 9:37:36 PM", + "Name": "CreatedDate" + } + } + ] + } + } + } +} \ No newline at end of file diff --git a/specification/labservices/resource-manager/readme.go.md b/specification/labservices/resource-manager/readme.go.md new file mode 100644 index 000000000000..21bb938142ce --- /dev/null +++ b/specification/labservices/resource-manager/readme.go.md @@ -0,0 +1,27 @@ +## Go + +These settings apply only when `--go` is specified on the command line. + +``` yaml $(go) +go: + license-header: MICROSOFT_APACHE_NO_VERSION + namespace: ML + clear-output-folder: true +``` + +### Go multi-api + +``` yaml $(go) && $(multiapi) +batch: + - tag: package-2018-10 +``` + + +### Tag: package-2018-10 and go + +These settings apply only when `--tag=package-2018-10 --go` is specified on the command line. +Please also specify `--go-sdk-folder=`. + +``` yaml $(tag) == 'package-2018-10' && $(go) +output-folder: $(go-sdk-folder)/services/labservices/mgmt/2018-10-15/$(namespace) +``` diff --git a/specification/labservices/resource-manager/readme.md b/specification/labservices/resource-manager/readme.md new file mode 100644 index 000000000000..a696f126b072 --- /dev/null +++ b/specification/labservices/resource-manager/readme.md @@ -0,0 +1,144 @@ +# LabServices + +> see https://aka.ms/autorest + +This is the AutoRest configuration file for LabServices. + + + +--- +## Getting Started +To build the SDK for LabServices, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run: + +> `autorest` + +To see additional help and options, run: + +> `autorest --help` +--- + +## Configuration + + + +### Basic Information +These are the global settings for the LabServices API. + +``` yaml +openapi-type: arm +tag: package-2018-10 +``` + + +### Tag: package-2018-10 + +These settings apply only when `--tag=package-2018-10` is specified on the command line. + +``` yaml $(tag) == 'package-2018-10' +input-file: +- Microsoft.LabServices/stable/2018-10-15/ML.json +``` + +--- +# Code Generation + + +## Swagger to SDK + +This section describes what SDK should be generated by the automatic system. +This is not used by Autorest itself. + +``` yaml $(swagger-to-sdk) +swagger-to-sdk: + - repo: azure-sdk-for-python + - repo: azure-sdk-for-java + - repo: azure-sdk-for-go + - repo: azure-sdk-for-js + - repo: azure-sdk-for-node + - repo: azure-sdk-for-ruby + after_scripts: + - bundle install && rake arm:regen_all_profiles['azure_mgmt_labservices'] +``` + + +## C# + +These settings apply only when `--csharp` is specified on the command line. +Please also specify `--csharp-sdks-folder=`. + +``` yaml $(csharp) +csharp: + azure-arm: true + license-header: MICROSOFT_MIT_NO_VERSION + namespace: Microsoft.Azure.Management.LabServices + output-folder: $(csharp-sdks-folder)/LabServices/Management.LabServices/Generated + clear-output-folder: true +``` + +## Python + +These settings apply only when `--python` is specified on the command line. +Please also specify `--python-sdks-folder=`. +Use `--python-mode=update` if you already have a setup.py and just want to update the code itself. + +``` yaml $(python) +python-mode: create +python: + azure-arm: true + license-header: MICROSOFT_MIT_NO_VERSION + payload-flattening-threshold: 2 + namespace: azure.mgmt.labservices + package-name: azure-mgmt-labservices + clear-output-folder: true +``` +``` yaml $(python) && $(python-mode) == 'update' +python: + no-namespace-folders: true + output-folder: $(python-sdks-folder)/azure-mgmt-labservices/azure/mgmt/labservices +``` +``` yaml $(python) && $(python-mode) == 'create' +python: + basic-setup-py: true + output-folder: $(python-sdks-folder)/azure-mgmt-labservices +``` + +## Go + +See configuration in [readme.go.md](./readme.go.md) + +## Java + +These settings apply only when `--java` is specified on the command line. +Please also specify `--azure-libraries-for-java-folder=`. + +``` yaml $(java) +azure-arm: true +fluent: true +namespace: com.microsoft.azure.management.labservices +license-header: MICROSOFT_MIT_NO_CODEGEN +payload-flattening-threshold: 1 +output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-labservices +``` + +### Java multi-api + +``` yaml $(java) && $(multiapi) +batch: + - tag: package-2018-10 +``` + +### Tag: package-2018-10 and java + +These settings apply only when `--tag=package-2018-10 --java` is specified on the command line. +Please also specify `--azure-libraries-for-java=`. + +``` yaml $(tag) == 'package-2018-10' && $(java) && $(multiapi) +java: + namespace: com.microsoft.azure.management.labservices.v2018_10_15 + output-folder: $(azure-libraries-for-java-folder)/labservices/resource-manager/v2018_10_15 +regenerate-manager: true +generate-interface: true +``` + + + diff --git a/specification/labservices/resource-manager/readme.nodejs.md b/specification/labservices/resource-manager/readme.nodejs.md new file mode 100644 index 000000000000..fb70ba2617b9 --- /dev/null +++ b/specification/labservices/resource-manager/readme.nodejs.md @@ -0,0 +1,14 @@ +## Node.js + +These settings apply only when `--nodejs` is specified on the command line. +Please also specify `--node-sdks-folder=`. + +``` yaml $(nodejs) +nodejs: + azure-arm: true + package-name: azure-arm-labservices + output-folder: $(node-sdks-folder)/lib/services/labservicesManagement + generate-license-txt: true + generate-package-json: true + generate-readme-md: true +``` diff --git a/specification/labservices/resource-manager/readme.ruby.md b/specification/labservices/resource-manager/readme.ruby.md new file mode 100644 index 000000000000..02938ea7dfaf --- /dev/null +++ b/specification/labservices/resource-manager/readme.ruby.md @@ -0,0 +1,26 @@ +## Ruby + +These settings apply only when `--ruby` is specified on the command line. + +``` yaml +package-name: azure_mgmt_LabServices +package-version: "0.16.0" +azure-arm: true +``` + +### Ruby multi-api + +``` yaml $(ruby) && $(multiapi) +batch: + - tag: package-2018-10 +``` + +### Tag: package-2018-10 and ruby + +These settings apply only when `--tag=package-2018-10 --ruby` is specified on the command line. +Please also specify `--ruby-sdks-folder=`. + +``` yaml $(tag) == 'package-2018-10' && $(ruby) +namespace: "Azure::LabServices::Mgmt::V2018_10_15" +output-folder: $(ruby-sdks-folder)/management/azure_mgmt_LabServices/lib +``` diff --git a/specification/labservices/resource-manager/readme.typescript.md b/specification/labservices/resource-manager/readme.typescript.md new file mode 100644 index 000000000000..4f8b19e8bb2f --- /dev/null +++ b/specification/labservices/resource-manager/readme.typescript.md @@ -0,0 +1,12 @@ +## TypeScript + +These settings apply only when `--typescript` is specified on the command line. +Please also specify `--typescript-sdks-folder=`. + +``` yaml $(typescript) +typescript: + azure-arm: true + package-name: "@azure/arm-labservices" + output-folder: "$(typescript-sdks-folder)/packages/@azure/arm-labservices" + generate-metadata: true +```