diff --git a/specification/web/resource-manager/Microsoft.Web/AppService/stable/2025-03-01/AppServicePlans.json b/specification/web/resource-manager/Microsoft.Web/AppService/stable/2025-03-01/AppServicePlans.json index 3edcb8105f79..645eeaf43579 100644 --- a/specification/web/resource-manager/Microsoft.Web/AppService/stable/2025-03-01/AppServicePlans.json +++ b/specification/web/resource-manager/Microsoft.Web/AppService/stable/2025-03-01/AppServicePlans.json @@ -366,6 +366,52 @@ } } }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/getrdppassword": { + "post": { + "tags": [ + "AppServicePlans" + ], + "summary": "Get the RDP password for an IsCustomMode ServerFarm.", + "description": "Description for Get the RDP password for an IsCustomMode ServerFarm.", + "operationId": "AppServicePlans_GetServerFarmRdpPassword", + "parameters": [ + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "name": "name", + "in": "path", + "description": "Name of the App Service plan.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK.", + "schema": { + "$ref": "#/definitions/ServerFarmRdpDetails" + } + }, + "404": { + "description": "Server farm not found.", + "x-ms-error-response": true + }, + "default": { + "description": "App Service error response.", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/DefaultErrorResponse" + } + } + } + } + }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/hybridConnectionNamespaces/{namespaceName}/relays/{relayName}": { "get": { "tags": [ @@ -678,6 +724,52 @@ } } }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/instances": { + "get": { + "tags": [ + "AppServicePlans" + ], + "summary": "Get the instance details for an app service plan.", + "description": "Description for Get the instance details for an app service plan.", + "operationId": "AppServicePlans_GetServerFarmInstanceDetails", + "parameters": [ + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "name": "name", + "in": "path", + "description": "Name of the App Service plan.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK.", + "schema": { + "$ref": "#/definitions/ServerFarmInstanceDetails" + } + }, + "404": { + "description": "Server farm not found.", + "x-ms-error-response": true + }, + "default": { + "description": "App Service error response.", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/DefaultErrorResponse" + } + } + } + } + }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/restartSites": { "post": { "tags": [ @@ -1455,6 +1547,59 @@ } } } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/serverfarms/{name}/workers/{workerName}/recycleinstance": { + "post": { + "tags": [ + "AppServicePlans" + ], + "summary": "Recycles a managed instance worker machine.", + "description": "Description for Recycles a managed instance worker machine.", + "operationId": "AppServicePlans_RecycleManagedInstanceWorker", + "parameters": [ + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "name": "name", + "in": "path", + "description": "Name of the App Service plan.", + "required": true, + "type": "string" + }, + { + "name": "workerName", + "in": "path", + "description": "Name of worker machine.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/Operation" + } + }, + "404": { + "description": "Server farm not found.", + "x-ms-error-response": true + }, + "default": { + "description": "App Service error response.", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/DefaultErrorResponse" + } + } + } + } } }, "definitions": { @@ -1724,6 +1869,73 @@ "readOnly": true } } + }, + "ServerFarmInstance": { + "description": "Represents details of a single instance in a server farm.", + "type": "object", + "properties": { + "instanceName": { + "description": "The instance name.", + "type": "string" + }, + "ipAddress": { + "description": "The instance IP address.", + "type": "string" + }, + "status": { + "description": "The instance status.", + "type": "string" + } + } + }, + "ServerFarmInstanceDetails": { + "description": "Represents instance details for an app service plan.", + "type": "object", + "allOf": [ + { + "$ref": "./CommonDefinitions.json#/definitions/ProxyOnlyResource" + } + ], + "properties": { + "properties": { + "description": "ServerFarmInstanceDetails resource specific properties", + "type": "object", + "properties": { + "serverFarmName": { + "description": "The server farm name.", + "type": "string" + }, + "instances": { + "description": "The list of server farm instances.", + "type": "array", + "items": { + "$ref": "#/definitions/ServerFarmInstance" + } + }, + "instanceCount": { + "format": "int32", + "description": "The total number of instances.", + "type": "integer" + } + }, + "x-ms-client-flatten": true + } + } + }, + "ServerFarmRdpDetails": { + "description": "Server Farm RDP connection details.", + "type": "object", + "properties": { + "rdpPassword": { + "description": "The RDP password for the server farm.", + "type": "string" + }, + "rdpPasswordExpiry": { + "format": "date-time", + "description": "The RDP password expiry date.", + "type": "string" + } + } } }, "parameters": { diff --git a/specification/web/resource-manager/Microsoft.Web/AppService/stable/2025-03-01/CommonDefinitions.json b/specification/web/resource-manager/Microsoft.Web/AppService/stable/2025-03-01/CommonDefinitions.json index 79977e6c4387..95abe382a502 100644 --- a/specification/web/resource-manager/Microsoft.Web/AppService/stable/2025-03-01/CommonDefinitions.json +++ b/specification/web/resource-manager/Microsoft.Web/AppService/stable/2025-03-01/CommonDefinitions.json @@ -387,6 +387,43 @@ "asyncScalingEnabled": { "description": "If true, this App Service Plan will attempt to scale asynchronously if there are insufficient workers to scale synchronously.\nIf false, this App Service Plan will only attempt sync scaling.", "type": "boolean" + }, + "planDefaultIdentity": { + "$ref": "#/definitions/DefaultIdentity", + "description": "Identity to use by platform for various features and integrations using managed identity." + }, + "isCustomMode": { + "description": "Whether this server farm is in custom mode.", + "type": "boolean" + }, + "registryAdapters": { + "description": "Registry adapters associated with this App Service plan.", + "type": "array", + "items": { + "$ref": "#/definitions/RegistryAdapter" + } + }, + "installScripts": { + "description": "Install scripts associated with this App Service plan.", + "type": "array", + "items": { + "$ref": "#/definitions/InstallScript" + } + }, + "network": { + "description": "All network settings for the server farm.", + "$ref": "#/definitions/ServerFarmNetworkSettings" + }, + "storageMounts": { + "description": "Storage mounts associated with this App Service plan.", + "type": "array", + "items": { + "$ref": "#/definitions/StorageMount" + } + }, + "rdpEnabled": { + "description": "If true, RDP access is enabled for this App Service plan. Only applicable for IsCustomMode ASPs.\nIf false, RDP access is disabled.", + "type": "boolean" } }, "x-ms-client-flatten": true @@ -394,6 +431,9 @@ "sku": { "$ref": "#/definitions/SkuDescription" }, + "identity": { + "$ref": "#/definitions/ManagedServiceIdentity" + }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocation" } @@ -1578,6 +1618,26 @@ } } }, + "DefaultIdentity": { + "type": "object", + "properties": { + "identityType": { + "enum": [ + "None", + "SystemAssigned", + "UserAssigned" + ], + "type": "string", + "x-ms-enum": { + "name": "ManagedServiceIdentityType", + "modelAsString": false + } + }, + "userAssignedIdentityResourceId": { + "type": "string" + } + } + }, "DeletedSite": { "description": "A deleted app.", "type": "object", @@ -2255,6 +2315,42 @@ } } }, + "InstallScript": { + "description": "Server farm install script configuration.", + "type": "object", + "properties": { + "name": { + "description": "Name of the install script.", + "type": "string" + }, + "source": { + "$ref": "#/definitions/InstallScriptSource", + "description": "Source of the install script." + } + } + }, + "InstallScriptSource": { + "description": "Object to hold install script reference.", + "type": "object", + "properties": { + "sourceUri": { + "description": "Install script source URI where the install script file will be fetched from.", + "type": "string" + }, + "type": { + "description": "Type of the install script.", + "enum": [ + "RemoteAzureBlob", + "PlatformStorage" + ], + "type": "string", + "x-ms-enum": { + "name": "InstallScriptType", + "modelAsString": true + } + } + } + }, "IpSecurityRestriction": { "description": "IP security restriction on an app.", "type": "object", @@ -2336,6 +2432,20 @@ } } }, + "KeyVaultReferenceWithStatus": { + "description": "Object to hold key vault reference and the resolution status", + "type": "object", + "properties": { + "secretUri": { + "description": "Key vault secret URI.", + "type": "string" + }, + "referenceStatus": { + "description": "Reference status of the key vault secret.", + "type": "string" + } + } + }, "KubeEnvironmentProfile": { "description": "Specification for a Kubernetes Environment to use for this resource.", "type": "object", @@ -2888,6 +2998,36 @@ } } }, + "RegistryAdapter": { + "description": "Server farm registry adapter configuration.", + "type": "object", + "properties": { + "registryKey": { + "description": "Registry key for the adapter.", + "type": "string" + }, + "type": { + "description": "Type of the registry adapter.", + "enum": [ + "Binary", + "String", + "Expand_String", + "Multi_String", + "DWord", + "QWord" + ], + "type": "string", + "x-ms-enum": { + "name": "RegistryAdapterType", + "modelAsString": true + } + }, + "keyVaultSecretReference": { + "$ref": "#/definitions/KeyVaultReferenceWithStatus", + "description": "Key vault reference to the value that will be placed in the registry location" + } + } + }, "RemotePrivateEndpointConnectionARMResource": { "description": "Remote Private Endpoint Connection ARM resource.", "type": "object", @@ -4280,6 +4420,16 @@ } } }, + "ServerFarmNetworkSettings": { + "description": "Network settings for an app service plan.", + "type": "object", + "properties": { + "virtualNetworkSubnetId": { + "description": "Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration. This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}", + "type": "string" + } + } + }, "SiteLimits": { "description": "Metric limits set on an app.", "type": "object", @@ -4550,6 +4700,41 @@ } } }, + "StorageMount": { + "description": "Server farm storage mount configuration.", + "type": "object", + "properties": { + "name": { + "description": "Name of the storage mount.", + "type": "string" + }, + "type": { + "description": "Type of the storage mount.", + "enum": [ + "AzureFiles", + "LocalStorage", + "FileShare" + ], + "type": "string", + "x-ms-enum": { + "name": "StorageMountType", + "modelAsString": true + } + }, + "source": { + "description": "Source of the fileshare/storage.", + "type": "string" + }, + "destinationPath": { + "description": "Path on worker where storage will be mounted.", + "type": "string" + }, + "credentialsKeyVaultReference": { + "$ref": "#/definitions/KeyVaultReferenceWithStatus", + "description": "KV reference to the credentials to connect to the share." + } + } + }, "StringDictionary": { "description": "String dictionary resource.", "type": "object", diff --git a/specification/web/resource-manager/Microsoft.Web/AppService/stable/2025-03-01/ResourceProvider.json b/specification/web/resource-manager/Microsoft.Web/AppService/stable/2025-03-01/ResourceProvider.json index c8527c983dd5..2d985b253cf5 100644 --- a/specification/web/resource-manager/Microsoft.Web/AppService/stable/2025-03-01/ResourceProvider.json +++ b/specification/web/resource-manager/Microsoft.Web/AppService/stable/2025-03-01/ResourceProvider.json @@ -417,6 +417,12 @@ "description": "Specify true if you want to filter to only regions that support Linux Consumption Workers.", "type": "boolean" }, + { + "name": "customModeWorkersEnabled ", + "in": "query", + "description": "Specify true if you want to filter to only regions that support App Service Plans with IsCustomMode set to true.", + "type": "boolean" + }, { "$ref": "#/parameters/subscriptionIdParameter" },