Skip to content

Commit d71d69a

Browse files
Merge pull request #308810 from MicrosoftDocs/main
Auto Publish – main to live - 2025-11-26 23:00 UTC
2 parents cdae242 + c6d2b9f commit d71d69a

File tree

183 files changed

+557
-620
lines changed

Some content is hidden

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

183 files changed

+557
-620
lines changed

articles/active-directory-b2c/partner-deduce.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ With this integration, organizations can extend their Azure AD B2C capabilities
3131

3232
To get started, you'll need:
3333

34-
- An Azure subscription. If you don't have one, get a [free account](https://azure.microsoft.com/free).
34+
- An Azure subscription. If you don't have one, get a [free account](https://azure.microsoft.com/pricing/purchase-options/azure-account?cid=msft_learn).
3535

3636
- An [Azure AD B2C tenant](tutorial-create-tenant.md) that is linked to your Azure subscription.
3737

articles/active-directory-b2c/partner-eid-me.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ To get started, you need:
3737
* A Relying Party account with eID-Me
3838
* Go to bluink.ca to [learn more](https://bluink.ca/eid-me/solutions/id-verification#contact-form) and request a demo
3939
* An Azure subscription
40-
* If you don't have one, get an [Azure free account](https://azure.microsoft.com/free)
40+
* If you don't have one, get an [Azure free account](https://azure.microsoft.com/pricing/purchase-options/azure-account?cid=msft_learn)
4141
* An Azure AD B2C tenant linked to the Azure subscription
4242
* See, [Tutorial: Create an Azure AD B2C tenant](tutorial-create-tenant.md)
4343
* A trial or production version of the eID-Me Digital ID App

articles/api-management/cache-lookup-policy.md

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ author: dlepow
66

77
ms.service: azure-api-management
88
ms.topic: reference
9-
ms.date: 07/23/2024
9+
ms.date: 11/24/2025
1010
ms.author: danlep
1111
ms.custom:
1212
- build-2025
@@ -101,29 +101,8 @@ This example shows how to use the `cache-store` policy along with a `cache-looku
101101
</policies>
102102
```
103103

104-
### Example using policy expressions
105-
This example shows how to configure API Management response caching duration that matches the response caching of the backend service as specified by the backend service's `Cache-Control` directive.
104+
[!INCLUDE [api-management-cache-example-policy-expressions](../../includes/api-management-cache-example-policy-expressions.md)]
106105

107-
```xml
108-
<!-- The following cache policy snippets demonstrate how to control API Management response cache duration with Cache-Control headers sent by the backend service. -->
109-
110-
<!-- Copy this snippet into the inbound section -->
111-
<cache-lookup vary-by-developer="false" vary-by-developer-groups="false" downstream-caching-type="public" must-revalidate="true" >
112-
<vary-by-header>Accept</vary-by-header>
113-
<vary-by-header>Accept-Charset</vary-by-header>
114-
</cache-lookup>
115-
<rate-limit calls="10" renewal-period="60" />
116-
117-
<!-- Copy this snippet into the outbound section. Note that cache duration is set to the max-age value provided in the Cache-Control header received from the backend service or to the default value of 5 min if none is found -->
118-
<cache-store duration="@{
119-
var header = context.Response.Headers.GetValueOrDefault("Cache-Control","");
120-
var maxAge = Regex.Match(header, @"max-age=(?<maxAge>\d+)").Groups["maxAge"]?.Value;
121-
return (!string.IsNullOrEmpty(maxAge))?int.Parse(maxAge):300;
122-
}"
123-
/>
124-
```
125-
126-
For more information, see [Policy expressions](api-management-policy-expressions.md) and [Context variable](api-management-policy-expressions.md#ContextVariables).
127106

128107

129108
## Related policies

articles/api-management/cache-store-policy.md

Lines changed: 2 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ author: dlepow
66

77
ms.service: azure-api-management
88
ms.topic: reference
9-
ms.date: 07/23/2024
9+
ms.date: 11/24/2025
1010
ms.author: danlep
1111
---
1212

@@ -76,30 +76,7 @@ This example shows how to use the `cache-store` policy along with a `cache-looku
7676
</policies>
7777
```
7878

79-
### Example using policy expressions
80-
81-
This example shows how to configure API Management response caching duration that matches the response caching of the backend service as specified by the backend service's `Cache-Control` directive.
82-
83-
```xml
84-
<!-- The following cache policy snippets demonstrate how to control API Management response cache duration with Cache-Control headers sent by the backend service. -->
85-
86-
<!-- Copy this snippet into the inbound section -->
87-
<cache-lookup vary-by-developer="false" vary-by-developer-groups="false" downstream-caching-type="public" must-revalidate="true" >
88-
<vary-by-header>Accept</vary-by-header>
89-
<vary-by-header>Accept-Charset</vary-by-header>
90-
</cache-lookup>
91-
<rate-limit calls="10" renewal-period="60" />
92-
93-
<!-- Copy this snippet into the outbound section. Note that cache duration is set to the max-age value provided in the Cache-Control header received from the backend service or to the default value of 5 min if none is found -->
94-
<cache-store duration="@{
95-
var header = context.Response.Headers.GetValueOrDefault("Cache-Control","");
96-
var maxAge = Regex.Match(header, @"max-age=(?<maxAge>\d+)").Groups["maxAge"]?.Value;
97-
return (!string.IsNullOrEmpty(maxAge))?int.Parse(maxAge):300;
98-
}"
99-
/>
100-
```
101-
102-
For more information, see [Policy expressions](api-management-policy-expressions.md) and [Context variable](api-management-policy-expressions.md#ContextVariables).
79+
[!INCLUDE [api-management-cache-example-policy-expressions](../../includes/api-management-cache-example-policy-expressions.md)]
10380

10481

10582
## Related policies

articles/api-management/inject-vnet-v2.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ author: dlepow
55
ms.author: danlep
66
ms.service: azure-api-management
77
ms.topic: how-to
8-
ms.date: 03/20/2025
8+
ms.date: 10/08/2025
99
ms.custom:
1010
- build-2025
1111
---
@@ -70,8 +70,6 @@ The subnet needs to be delegated to the **Microsoft.Web/hostingEnvironments** se
7070
7171
For more information about configuring subnet delegation, see [Add or remove a subnet delegation](../virtual-network/manage-subnet-delegation.md).
7272

73-
[!INCLUDE [api-management-virtual-network-address-prefix](../../includes/api-management-virtual-network-address-prefix.md)]
74-
7573
### Permissions
7674

7775
You must have at least the following role-based access control permissions on the subnet or at a higher level to configure virtual network injection:

articles/api-management/soft-delete.md

Lines changed: 62 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ ms.service: azure-api-management
55
ms.topic: how-to
66
author: dlepow
77
ms.author: danlep
8-
ms.date: 10/13/2025
8+
ms.date: 11/26/2025
99
---
1010

1111
# API Management soft-delete
@@ -14,18 +14,13 @@ ms.date: 10/13/2025
1414

1515
With API Management soft-delete, you can recover and restore a recently deleted API Management instance. This feature protects against accidental deletion of your API Management instance.
1616

17-
Currently, depending on how you delete an API Management instance, the instance is either soft-deleted and recoverable during a retention period, or permanently deleted:
18-
19-
- When you use the Azure portal or REST API version `2020-06-01-preview` or later to delete an API Management instance, it's **soft-deleted**.
20-
- An API Management instance deleted using a REST API version before `2020-06-01-preview` is **permanently deleted**.
21-
- An API Management instance deleted using API Management commands in Azure PowerShell or Azure CLI is **soft-deleted**.
22-
2317
## Supporting interfaces
2418

25-
Recovery and other operations on a soft-deleted instance are enabled through [REST API](/rest/api/apimanagement/current-ga/api-management-service/restore) version `2020-06-01-preview` or later, or the Azure SDK for .NET, Go, or Python.
19+
You can recover and perform other operations on a soft-deleted instance through [REST API](/rest/api/apimanagement/current-ga/api-management-service/restore) version `2020-06-01-preview` or later, [Azure CLI](/cli/azure/apim/deletedservice), or the Azure SDK for .NET, Go, or Python.
2620

2721
> [!TIP]
28-
> For more information about tips and tools for calling Azure REST APIs, see [Azure REST API Reference](/rest/api/azure/), and for information specific to API Management, see [API Management REST](/rest/api/apimanagement/).
22+
> * For more information about tips and tools for calling Azure REST APIs, see [Azure REST API Reference](/rest/api/azure/). For information specific to API Management, see [API Management REST](/rest/api/apimanagement/).
23+
> * To use the Azure CLI, see [Install Azure CLI](/cli/azure/install-azure-cli) if you haven't already installed it.
2924
3025
| Operation | Description | API Management namespace | Minimum API version |
3126
|--|--|--|--|
@@ -38,66 +33,90 @@ Recovery and other operations on a soft-deleted instance are enabled through [RE
3833

3934
## Soft-delete behavior
4035

41-
You can use any API version to create your API Management instance. When you use the Azure portal, Azure REST API, or another Azure tool using API version `2020-06-01-preview` or later to delete an API Management instance, the instance is automatically soft-deleted.
36+
You can use any API version to create your API Management instance. When you use the Azure portal, Azure REST API, or another Azure tool with API version `2020-06-01-preview` or later to delete an API Management instance, the instance is automatically soft-deleted.
4237

43-
Once an API Management instance is soft-deleted, the service exists in a deleted state, making it inaccessible to normal API Management operations.
38+
When you soft-delete an API Management instance, the service enters a deleted state and becomes inaccessible to normal API Management operations.
4439

4540
In the soft-deleted state:
4641

47-
- The API Management instance can only be [listed](#list-deleted-api-management-instances), [recovered](#recover-a-soft-deleted-instance), or [purged](#purge-a-soft-deleted-instance) (permanently deleted).
48-
- Azure will schedule the permanent deletion of the underlying data corresponding to the API Management instance after the predetermined (48 hour) retention period.
42+
- You can only [list](#list-deleted-api-management-instances), [recover](#recover-a-soft-deleted-instance), or [purge](#purge-a-soft-deleted-instance) (permanently delete) the API Management instance.
43+
- Azure schedules the permanent deletion of the underlying data for the API Management instance after the predetermined 48-hour retention period.
4944
- You can't reuse the name of the API Management instance.
5045

51-
If you don't recover or purge your API Management instance within 48 hours, the instance is automatically deleted permanently.
46+
If you don't recover or purge your API Management instance within 48 hours, the instance is permanently deleted.
5247

5348
## List deleted API Management instances
5449

55-
You can verify that a soft-deleted API Management instance is available to restore (undelete), by using either the Deleted Services [Get By Name](/rest/api/apimanagement/current-ga/deleted-services/get-by-name) operations or the [List By Subscription](/rest/api/apimanagement/current-ga/deleted-services/list-by-subscription) operation.
50+
You can verify that a soft-deleted API Management instance is available to restore by using either the Deleted Services [Get By Name](/rest/api/apimanagement/current-ga/deleted-services/get-by-name) operations or the [List By Subscription](/rest/api/apimanagement/current-ga/deleted-services/list-by-subscription) operation.
5651

5752
### Get a soft-deleted instance by name
5853

54+
# [REST API](#tab/rest)
55+
5956
Use the API Management [Get By Name](/rest/api/apimanagement/current-ga/deleted-services/get-by-name) operation, substituting `{subscriptionId}`, `{location}`, and `{serviceName}` with your Azure subscription, [resource location name](/rest/api/resources/subscriptions/list-locations#location), and API Management instance name:
6057

6158
```rest
62-
GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.ApiManagement/locations/{location}/deletedservices/{serviceName}?api-version=2021-08-01
59+
GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.ApiManagement/locations/{location}/deletedservices/{serviceName}?api-version=2024-05-01
60+
```
61+
62+
# [Azure CLI](#tab/cli)
63+
64+
Use the [az apim deletedservice show](/cli/azure/apim/deletedservice#az-apim-deletedservice-show) command, substituting `{location}` and `{serviceName}` with your [resource location name](/rest/api/resources/subscriptions/list-locations#location) and API Management instance name:
65+
66+
```azurecli
67+
az apim deletedservice show --location {location} --service-name {serviceName}
6368
```
6469

65-
If it's available for undelete, Azure returns a record of the API Management instance showing its `deletionDate` and `scheduledPurgeDate`, for example:
70+
---
71+
72+
If the API Management instance is available for undelete, Azure returns a record of the instance that shows its `deletionDate` and `scheduledPurgeDate`. For example, the REST API returns output similar to this:
6673

6774
```json
6875
{
69-
"id": "subscriptions/########-####-####-####-############/providers/Microsoft.ApiManagement/locations/southcentralus/deletedservices/apimtest",
76+
"id": "subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/providers/Microsoft.ApiManagement/locations/southcentralus/deletedservices/apimtest",
7077
"name": "apimtest",
7178
"type": "Microsoft.ApiManagement/deletedservices",
7279
"location": "South Central US",
7380
"properties": {
74-
"serviceId": "/subscriptions/########-####-####-####-############/resourceGroups/apimtestgroup/providers/Microsoft.ApiManagement/service/apimtest",
75-
"scheduledPurgeDate": "2021-11-26T19:40:26.3596893Z",
76-
"deletionDate": "2021-11-24T19:40:50.1013572Z"
81+
"serviceId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/apimtestgroup/providers/Microsoft.ApiManagement/service/apimtest",
82+
"scheduledPurgeDate": "2024-11-26T19:40:26.3596893Z",
83+
"deletionDate": "2024-11-24T19:40:50.1013572Z"
7784
}
7885
}
7986
```
8087

8188
### List all soft-deleted instances for a given subscription
8289

90+
# [REST API](#tab/rest)
91+
8392
Use the API Management [List By Subscription](/rest/api/apimanagement/current-ga/deleted-services/list-by-subscription) operation, substituting `{subscriptionId}` with your subscription ID:
8493

8594
```rest
86-
GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.ApiManagement/deletedservices?api-version=2021-08-01
95+
GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.ApiManagement/deletedservices?api-version=2024-05-01
8796
```
8897

89-
This command returns a list all soft-deleted services available for undelete under the given subscription, showing the `deletionDate` and `scheduledPurgeDate` for each.
98+
# [Azure CLI](#tab/cli)
99+
100+
Use the [az apim deletedservice list](/cli/azure/apim/deletedservice#az-apim-deletedservice-list) command:
90101

91-
## Recover a soft deleted instance
102+
```azurecli
103+
az apim deletedservice list
104+
```
105+
106+
---
107+
108+
This command returns a list of all soft-deleted services that you can undelete under the given subscription. It shows the `deletionDate` and `scheduledPurgeDate` for each service.
109+
110+
## Recover a soft-deleted instance
92111

93112
Use the API Management [Create Or Update](/rest/api/apimanagement/current-ga/api-management-service/create-or-update) operation, substituting `{subscriptionId}`, `{resourceGroup}`, and `{apimServiceName}` with your Azure subscription, resource group name, and API Management name:
94113

95114
```rest
96115
PUT
97-
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.ApiManagement/service/{apimServiceName}?api-version=2021-08-01
116+
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.ApiManagement/service/{apimServiceName}?api-version=2024-05-01
98117
```
99118

100-
. . . and set the `restore` property to `true` in the request body. (When this flag is specified and set to *true*, all other properties are ignored.) For example:
119+
In the request body, set the `restore` property to `true`. (When this flag is specified and set to *true*, all other properties are ignored.) For example:
101120

102121
```json
103122
{
@@ -116,15 +135,27 @@ https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{reso
116135

117136
## Purge a soft-deleted instance
118137

119-
Use the API Management [Purge](/rest/api/apimanagement/current-ga/deleted-services/purge) operation, substituting `{subscriptionId}`, `{location}`, and `{serviceName}` with your Azure subscription, resource location, and API Management name.
120-
121138
> [!NOTE]
122139
> To purge a soft-deleted instance, you must have the following role-based access control (RBAC) permissions at the subscription scope in addition to Contributor access to the API Management instance: Microsoft.ApiManagement/locations/deletedservices/delete, Microsoft.ApiManagement/deletedservices/read.
123140
141+
# [REST API](#tab/rest)
142+
143+
Use the API Management [Purge](/rest/api/apimanagement/current-ga/deleted-services/purge) operation, substituting `{subscriptionId}`, `{location}`, and `{serviceName}` with your Azure subscription, resource location, and API Management name.
144+
124145
```rest
125-
DELETE https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.ApiManagement/locations/{location}/deletedservices/{serviceName}?api-version=2021-08-01
146+
DELETE https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.ApiManagement/locations/{location}/deletedservices/{serviceName}?api-version=2024-05-01
126147
```
127148

149+
# [Azure CLI](#tab/cli)
150+
151+
Use the [az apim deletedservice purge](/cli/azure/apim/deletedservice#az-apim-deletedservice-purge) command, substituting `{location}` and `{serviceName}` with your resource location and API Management name.
152+
153+
```azurecli
154+
az apim deletedservice purge --location {location} --service-name {serviceName}
155+
```
156+
157+
---
158+
128159
This command permanently deletes your API Management instance from Azure.
129160

130161
## Reuse an API Management instance name after deletion
@@ -139,9 +170,9 @@ You **can't** reuse the name of an API Management instance in a new deployment:
139170

140171
- While the instance is soft-deleted.
141172

142-
- In a subscription other than the one used to deploy the original instance, even after the original instance is permanently deleted (purged) from Azure. This restriction applies whether the new subscription used is in the same or a different Microsoft Entra tenant. The restriction is in effect for several days or longer after deletion, depending on the subscription type.
173+
- In a subscription other than the one used to deploy the original instance, even after the original instance is permanently deleted (purged) from Azure. This restriction applies whether the new subscription is in the same or a different Microsoft Entra tenant. The restriction is in effect for several days or longer after deletion, depending on the subscription type.
143174

144-
This restriction is because Azure reserves the service host name to a customer's tenant for a reservation period to prevent the threat of subdomain takeover with dangling domain name system (DNS) entries. For more information, see [Prevent dangling DNS entries and avoid subdomain takeover](/azure/security/fundamentals/subdomain-takeover). To see all dangling DNS entries for subscriptions in a Microsoft Entra tenant, see [Identify dangling DNS entries](/azure/security/fundamentals/subdomain-takeover#identify-dangling-dns-entries).
175+
This restriction exists because Azure reserves the service host name to a customer's tenant for a reservation period to prevent the threat of subdomain takeover with dangling domain name system (DNS) entries. For more information, see [Prevent dangling DNS entries and avoid subdomain takeover](/azure/security/fundamentals/subdomain-takeover). To see all dangling DNS entries for subscriptions in a Microsoft Entra tenant, see [Identify dangling DNS entries](/azure/security/fundamentals/subdomain-takeover#identify-dangling-dns-entries).
145176

146177

147178
## Related content

articles/api-management/v2-service-tiers-overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ The latest capabilities of the v2 tiers are supported in API Management API vers
5050

5151
* **Standard v2** and **Premium v2** also support inbound [private endpoint connections](private-endpoint.md) to the API Management gateway.
5252

53-
* **Premium v2** also supports simplified **virtual network injection** for complete isolation of inbound and outbound gateway traffic without requiring network security group rules, route tables, or service endpoints. The virtual network must be in the same region and subscription as the API Management instance. [Learn more](inject-vnet-v2.md).
53+
* **Premium v2** also supports simplified **virtual network injection** for complete isolation of inbound and outbound gateway traffic without requiring route tables or service endpoints. The virtual network must be in the same region and subscription as the API Management instance. [Learn more](inject-vnet-v2.md).
5454

5555
### Supported regions
5656

0 commit comments

Comments
 (0)