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"
},