Skip to content

Commit 1017452

Browse files
Merge pull request #311307 from MicrosoftDocs/main
Auto Publish – main to live - 2026-02-03 23:00 UTC
2 parents 5f74c19 + 4f8aadb commit 1017452

51 files changed

Lines changed: 1237 additions & 2038 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

articles/app-service/environment/networking.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,8 +167,18 @@ If your alternate subnet is in a different resource group than your app, run `az
167167

168168
To change the alternate subnet for an app, first remove the existing integration and then add a new one.
169169

170+
To remove the alternate subnet join for an app, remove the virtual network integration using the Azure CLI or ARM/Bicep:
171+
172+
```azurecli-interactive
173+
az webapp vnet-integration remove --resource-group <APP-RESOURCE-GROUP> --name <APP-NAME>
174+
```
175+
176+
> [!IMPORTANT]
177+
> Don't add the App Service Environment's subnet as the alternate subnet. This configuration causes a conflict and will prevent your app from functioning correctly.
178+
170179
### Limitations
171180

181+
- The app, App Service Environment, and virtual network must all be in the same subscription.
172182
- Each app from a given plan can only integrate with one alternate subnet.
173183
- A plan can have up to four different subnet connections, and apps in the same plan can use any of the connections.
174184
- This feature isn't compatible with the [multi-plan subnet join](../overview-vnet-integration.md#subnet-requirements) feature available in the multitenant App Service offering.

articles/artifact-signing/how-to-signing-integrations.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ The Artifact Signing Client Tools installer is available on the Windows Package
6161
> winget is available by default in Windows 11 and modern versions of Windows 10. However, it may not be installed in older versions of Windows. See the [winget documentation](/windows/package-manager/winget/) for installation instructions.
6262
6363
```PowerShell
64-
winget install -e --id Microsoft.Azure.TrustedSigningClientTools
64+
winget install -e --id Microsoft.Azure.ArtifactSigningClientTools
6565
```
6666

6767
The `-e` option is to ensure the official Artifact Signing Client Tools package is installed. This command installs the latest version by default. To specify a version, add a `-v <version>` with your desired version to the command.
@@ -179,8 +179,8 @@ For example, when authenticating with [EnvironmentCredential](/dotnet/api/azure.
179179

180180
```json
181181
{
182-
"Endpoint": "<Trusted Signing account endpoint>",
183-
"CodeSigningAccountName": "<Trusted Signing account name>",
182+
"Endpoint": "<Artifact Signing account endpoint>",
183+
"CodeSigningAccountName": "<Signing account name>",
184184
"CertificateProfileName": "<Certificate profile name>",
185185
"CorrelationId": "<Optional CorrelationId value>",
186186
"ExcludeCredentials": [

articles/azure-vmware/native-network-design-consideration.md

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ ms.service: azure-vmware
66
ms.date: 12/16/2025
77
ms.custom:
88
- build-2025
9-
# customer intent: As a cloud administrator, I want to learn about Azure VMware Solution Generation 2 private cloud design considerations so that I can make informed decisions about my Azure VMware Solution deployment.
109
# Customer intent: As a cloud administrator, I want to understand the design considerations for Azure VMware Solution Generation 2 private clouds so that I can effectively plan and implement my private cloud deployment while ensuring compliance with current limitations and requirements.
1110
---
1211

@@ -36,8 +35,7 @@ The following functionality is limited during this time. These limitations will
3635
1. **vSAN Stretched Clusters** isn't supported.
3736

3837
11. **Public IP down to the VMware NSX Microsoft Edge** for configuring internet will not be supported. You can find what internet options are supported in [Internet connectivity options](native-internet-connectivity-design-considerations.md).
39-
1. During **unplanned maintenance** – like a host hardware failure – on any of the first four hosts in your SDDC, you may experience a temporary North-South network connectivity disruption for some workloads, lasting up to 30 seconds. North-South connectivity refers to traffic between your AVS VMware workloads and external endpoints beyond the NSX-T Tier-0 (T0) Edge, such as Azure services or on-premises environments.
40-
38+
1. During **unplanned maintenance** – like a host hardware failure – on any of the first four hosts in your SDDC, you may experience a temporary North-South network connectivity disruption for some workloads, lasting up to 30 seconds. North-South connectivity refers to traffic between your AVS VMware workloads and external endpoints beyond the NSX-T Tier-0 (T0) Edge, such as Azure services or on-premises environments. This limitation has been removed in specific Azure regions. Check with with Azure Support to see if your region is affected by this limitation.
4139
13. **Network Security Groups** associated with the private cloud host virtual network must be created in the ***same*** resource group as the private cloud and its virtual network.
4240
14. **Cross-resource group and cross-subscription references** from customer virtual networks to the Azure VMware Solution virtual network are not supported by default. This includes resource types such as: User-defined routes (UDRs), DDoS Protection Plans, and other linked networking resources. If a customer virtual network is associated with one of these references that resides in a different resource group or subscription than the Azure VMware Solution virtual network, network programming (such as NSX segment propagation) may fail. To avoid issues, customers must ensure that the Azure VMware Solution virtual network isn't linked to resources in a different resource group or subscription and detach such resources (for example, DDoS Protection Plans) from the virtual network before proceeding.
4341
- To maintain your cross-resource group reference, create a role assignment from your cross-resource group or subscription and give the “AzS VIS Prod App” the "AVS on Fleet VIS Role". The role assignment allows you to use reference and have your reference correctly applied for your Azure VMware Solution private cloud.
@@ -88,13 +86,14 @@ Example /22 CIDR network address block **10.31.0.0/22** is divided into the foll
8886
| :-- | :-- | :-- | :-- |
8987
|VMware NSX Network | /27 | NSX Manager network. | 10.31.0.0/27 |
9088
|vCSA Network | /27 | vCenter Server network. | 10.31.0.32/27 |
91-
|avs-mgmt| /27 |The management appliances (vCenter Server and NSX manager) are behind the "avs-mgmt” subnet, programmed as secondary IP ranges on this subnet. | 10.31.0.64/27 |
89+
|avs-mgmt| /27|The management appliances (vCenter Server and NSX manager) are behind the "avs-mgmt” subnet, programmed as secondary IP ranges on this subnet. You may need to adjust the route tables associated with this subnet if your network traffic, for your management appliances, needs to route through an NVA or firewall | 10.31.0.64/27 |
9290
|avs-vnet-sync| /27 |Used by Azure VMware Solution Gen 2 to program routes created in VMware NSX into the virtual network. | 10.31.0.96/27 |
93-
|avs-services | /27 |Used for Azure VMware Solution Gen 2 provider services. Also used to configure private DNS resolution for your private cloud. | 10.31.0.160/27 |
94-
|avs-nsx-gw, avs-nsx-gw-1| /28 |Subnets off each of the T0 Gateways per edge. These subnets are used to program VMware NSX network segments as secondary IPs addresses. | 10.31.0.224/28, 10.31.0.240/28 |
95-
|esx-mgmt-vmk1 | /24 |vmk1 is the management interface used by customers to access the host. IPs from the vmk1 interface come from these subnets. All of the vmk1 traffic for all hosts comes from this subnet range. | 10.31.1.0/24 |
96-
|esx-vmotion-vmk2 | /24 | vMotion VMkernel interfaces. | 10.31.2.0/24 |
97-
|esx-vsan-vmk3 | /24 | vSAN VMkernel interfaces and node communication. | 10.31.3.0/24 |
91+
|avs-services | /27 |Used for Azure VMware Solution Gen 2 provider services. Also used to configure private DNS resolution for your private cloud. | 10.31.0.224/27 |
92+
|avs-nsx-gw, avs-nsx-gw-1| /27 |Subnets off each of the T0 Gateways per edge. These subnets are used to program VMware NSX network segments as secondary IPs addresses. |10.31.0.128/27, 10.31.0.160/27 |
93+
|esx-mgmt-vmk1 | /25 |vmk1 is the management interface used by customers to access the host. IPs from the vmk1 interface come from these subnets. All of the vmk1 traffic for all hosts comes from this subnet range. | 10.31.1.0/25 |
94+
|esx-vmotion-vmk2 | /25 | vMotion VMkernel interfaces. | 10.31.1.128/25 |
95+
|esx-vsan-vmk3 | /25 | vSAN VMkernel interfaces and node communication. | 10.31.2.0/25 |
96+
|avs-network-infra-gw|/26|Used by Azure VMware Solution management for programming NSX segments. Customers do no need to modify this subnet because it s only used for Azure VMware Solution infrastructure.|10.31.2.128/26|
9897
|Reserved | /27 | Reserved Space. | 10.31.0.128/27 |
9998
|Reserved | /27 | Reserved Space. | 10.31.0.192/27 |
10099

articles/communication-services/quickstarts/tpe/teams-phone-extensibility-quickstart.md

Lines changed: 127 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@ This article describes how an independent software vendor (ISV) can provision Te
2323
- ISV’s Customer has access to Microsoft 365 Admin Center.
2424
- ISV has access to change Azure Communication Services Resource settings.
2525
- You grant Teams Tenant access to a CCaaS service for Graph API usage.
26-
- ISV is using the .NET, JavaScript or Java ACS Call Automation SDK version 1.5.0 or above (Python version will be released soon).
27-
- ISV is using the JavaScript ACS Client SDK version 1.37 and above.
26+
- ISV uses the .NET, JavaScript, or Java ACS Call Automation SDK version 1.5.0 or above (Python version will be released soon).
27+
- ISV uses the JavaScript ACS Client SDK version 1.37 and above.
2828

2929

3030
## Quick start
3131

32-
The rest of this article describes quick starts for two different personas: CCaaS Developer and Teams Tenant. The CCaaS developer is the ISV persona building the CCaaS service using Azure Communication Services. The Teams Tenant is the persona that is a customer of the ISV that is administering to Teams Phone.
32+
The rest of this article describes quick starts for two different personas: CCaaS Developer and Teams Tenant. The CCaaS developer is the ISV persona building the CCaaS service using Azure Communication Services. The Teams Tenant is the persona that's a customer of the ISV that's administering to Teams Phone.
3333

3434
### CCaaS Developer: Provision the AppID (Application ID)
3535

@@ -112,7 +112,7 @@ Connect-MicrosoftTeams
112112
Update-Module MicrosoftTeams
113113
```
114114

115-
Use the [New-CsOnlineApplicationInstance (MicrosoftTeamsPowerShell)](/powershell/module/teams/new-csonlineapplicationinstance) cmdlet to create a Resource Account. There's no change for Teams Phone extensibility in this command. The ApplicationId parameter is your third party bot ID. Don't use the Teams first person Application IDs defined in [Set-CsOnlineApplicationInstance (MicrosoftTeamsPowerShell)](/powershell/module/teams/set-csonlineapplicationinstance#-applicationid) because they don't work for Teams Phone extensibility. It's up to the CCaaS developer on how to communicate the Application ID to the Teams Tenant.
115+
Use the [New-CsOnlineApplicationInstance (MicrosoftTeamsPowerShell)](/powershell/module/teams/new-csonlineapplicationinstance) cmdlet to create a Resource Account. There's no change for Teams Phone extensibility in this command. The ApplicationId parameter is your third party bot ID. Don't use the Teams first person Application identifiers (IDs) defined in [Set-CsOnlineApplicationInstance (MicrosoftTeamsPowerShell)](/powershell/module/teams/set-csonlineapplicationinstance#-applicationid) because they don't work for Teams Phone extensibility. It's up to the CCaaS developer on how to communicate the Application ID to the Teams Tenant.
116116

117117
Example:
118118

@@ -192,14 +192,31 @@ Once you grant the Microsoft Entra application appropriate Graph permissions, th
192192
193193
The CCaaS Admin also needs elevated permissions to access Teams Resource Account information. The Graph API is getting Teams Resource Account information and that information is an asset owned by Teams Admin, so it requires privileged access as a Teams Admin. For more information, see [Permissions for Managing Resource Accounts](/microsoftteams/manage-resource-accounts#assign-permissions-for-managing-a-resource-account).
194194
195-
Query definition:
195+
196+
### Querying Teams Resource Accounts with Filtering and Paging
197+
198+
The Teams Resource Accounts API supports **OData filtering**, **server‑side paging**, and **cursor-based continuation** via the `@odata.nextLink` field.
199+
This capability enables CCaaS developers to efficiently retrieve Resource Accounts associated with their Azure Communication Services (ACS) resources.
200+
201+
#### Query definition
202+
196203
197204
> https://graph.microsoft.com/beta/admin/teams/resourceAccounts
198205
199-
Example request URI (RURI) to get Resource Accounts with a filter on appId:
206+
You can extend the base query with OData options such as:
207+
208+
- `$filter`—filter Resource Accounts by fields such as `appId` or `acsResourceId`
209+
- `$top`—limit the number of results returned per page
210+
- `@odata.nextLink`—Graph-provided URL for retrieving subsequent pages
211+
212+
---
213+
214+
### Filter by ACS Resource ID
215+
216+
The following example returns only Resource Accounts that are associated with a specific ACS Resource ID:
200217
201218
```rest
202-
GET https://graph.microsoft.com/beta/admin/teams/resourceAccounts?$filter=appid eq 'aa123456-1234-1234-1234-aaa123456789'
219+
GET https://graph.microsoft.com/beta/admin/teams/resourceAccounts?$filter=acsResourceId eq 'aa123456-1234-1234-1234-aaa123456789'
203220
```
204221

205222
Successful response:
@@ -208,15 +225,109 @@ Successful response:
208225
{
209226
"@odata.context": "https://graph.microsoft.com/beta/$metadata#admin/teams/resourceAccounts",
210227
"value": [
211-
{
212-
"id": "cc123456-5678-5678-1234-ccc123456789",
228+
{
229+
"id": "aa123456-1234-1234-1234-aaa123456789",
213230
"userPrincipalName": "[email protected]",
214-
"appId": "aa123456-1234-1234-1234-aaa123456789",
215231
"displayName": "My RA Name",
232+
"appId": "aa123456-1234-1234-1234-aaa123456789",
216233
"phoneNumber": "tel:+1234567890",
217-
"acsResourceId": "bb567890-1234-1234-1234-bbb123456789"
218-
}]
219-
}
234+
"acsResourceId": "aa123456-1234-1234-1234-aaa123456789"
235+
}
236+
]
237+
}
238+
```
239+
240+
### Paging with $top
241+
242+
You can use $top to specify the maximum number of results per page:
243+
244+
```rest
245+
GET https://graph.microsoft.com/beta/admin/teams/resourceAccounts?$top=5
246+
```
247+
248+
If more than five Resource Accounts exist, Microsoft Graph returns an @odata.nextLink value for the next page:
249+
250+
```rest
251+
252+
{
253+
"value": [
254+
{
255+
"id": "...",
256+
"displayName": "...",
257+
"acsResourceId": "..."
258+
}
259+
],
260+
"@odata.nextLink":
261+
"https://graph.microsoft.com/beta/admin/teams/resourceAccounts?$top=5&$skiptoken=abc123..."
262+
}
263+
```
264+
To continue paging, call the URL in the @odata.nextLink field until it's no longer present.
265+
266+
### Combined paging and filtering
267+
268+
Developers can combine $top and $filter to retrieve a filtered, paginated list:
269+
270+
```rest
271+
GET https://graph.microsoft.com/beta/admin/teams/resourceAccounts?$top=5&$filter=acsResourceId eq 'aa123456-1234-1234-1234-aaa123456789'
272+
```
273+
This query returns up to five Resource Accounts that match the specified ACS Resource ID.
274+
275+
### C# Example—Filtering + Paging
276+
The following C# sample demonstrates how to:
277+
278+
1. Query Teams Resource Accounts
279+
2. Filter by acsResourceId
280+
3. Limit results to 5 per page
281+
4. Follow @odata.nextLink for full pagination
282+
283+
```csharp
284+
using System;
285+
using System.Collections.Generic;
286+
using System.Net.Http;
287+
using System.Net.Http.Headers;
288+
using System.Threading.Tasks;
289+
using Newtonsoft.Json.Linq;
290+
291+
public static async Task<List<JObject>> GetResourceAccountsAsync(
292+
string acsResourceId,
293+
string accessToken)
294+
{
295+
var results = new List<JObject>();
296+
297+
string requestUrl =
298+
$"https://graph.microsoft.com/beta/admin/teams/resourceAccounts" +
299+
$"?$top=5&$filter=acsResourceId eq '{acsResourceId}'";
300+
301+
string nextUrl = requestUrl;
302+
303+
while (!string.IsNullOrEmpty(nextUrl))
304+
{
305+
var request = new HttpRequestMessage(HttpMethod.Get, nextUrl);
306+
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
307+
308+
using (var client = new HttpClient())
309+
{
310+
var response = await client.SendAsync(request);
311+
response.EnsureSuccessStatusCode();
312+
313+
var json = await response.Content.ReadAsStringAsync();
314+
var page = JObject.Parse(json);
315+
316+
if (page["value"] is JArray items)
317+
{
318+
foreach (var item in items)
319+
{
320+
results.Add((JObject)item);
321+
}
322+
}
323+
324+
// Continue to the next page if returned
325+
nextUrl = (string)page["@odata.nextLink"];
326+
}
327+
}
328+
329+
return results;
330+
}
220331
```
221332

222333
### CCaaS Developer: Receive and answer incoming call
@@ -237,12 +348,12 @@ The following steps demonstrate how to receive and answer an incoming Teams call
237348
1. Complete client and server consent as defined in [Access a user's Teams Phone separate from their Teams client](https://github.com/Azure/communication-preview/blob/master/Teams%20Phone%20Extensibility/teams-phone-extensibility-access-teams-phone.md).
238349

239350
> [!NOTE]
240-
> For the Azure Communication Services resource, ensure the data location matches the Teams Tenant location to comply with data boundary regulations. You can retrieve programmatically details about tenant organisation via [Get organization](/graph/api/organization-get)
351+
> For the Azure Communication Services resource, ensure the data location matches the Teams Tenant location to comply with data boundary regulations. You can retrieve programmatically details about tenant organization via [Get organization](/graph/api/organization-get)
241352
>
242353
243354
#### Setup and host your Azure dev tunnels
244355

245-
Azure dev tunnels enable you to share local web services hosted on the internet. Run the commands to connect your local development environment to the public internet. Dev tunnels creates a persistent endpoint URL and which enables anonymous access. We use this endpoint to notify your application about calling events from the Azure Communication Services Call Automation service.
356+
Azure dev tunnels enable you to share local web services hosted on the internet. Run the commands to connect your local development environment to the public internet. Dev tunnels create a persistent endpoint URL that enables anonymous access. We use this endpoint to notify your application about calling events from the Azure Communication Services Call Automation service.
246357

247358
```dotnetcli
248359
devtunnel create --allow-anonymous
@@ -401,7 +512,7 @@ this._teamsCallAgent = await this._callClient.createTeamsCallAgent(this.tokenCre
401512

402513
### CCaaS Client Developer: How to place an outbound OBO call
403514

404-
Developers need to get the on behalf of (OBO) identity (ID) Resource Account that the call needs to be placed on behalf of. The following articles describe how to place an outbound OBO call.
515+
Developers need to get the on-behalf-of (OBO) Resource Account identity that the call needs to be placed on behalf of. The following articles describe how to place an outbound OBO call.
405516

406517
Once the OBO identity is acquired, you need to set the `onBehalfOfOptions` in the `StartTeamsGroupCallOptions()` or `StartTeamsCallOptions()` method. For more information, see [StartTeamsGroupCallOptions interface](/javascript/api/azure-communication-services/@azure/communication-calling/startteamsgroupcalloptions) or [StartTeamsCallOptions interface](/javascript/api/azure-communication-services/@azure/communication-calling/startteamscalloptions).
407518

articles/container-apps/TOC.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,8 @@ items:
195195
href: gpu-image-generation.md
196196
- name: Deploy an NVIDIA Llama3 NIM
197197
href: serverless-gpu-nim.md
198+
- name: Deploy OpenAI GPT with OSS Ollama
199+
href: deploy-openai-gpt-oss-ollama.md
198200
- name: Dynamic sessions
199201
items:
200202
- name: Overview

0 commit comments

Comments
 (0)