Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
3df3be8
Add API version 2025-09-01 for Microsoft.Network (#44613)
santoshgh317 Jul 16, 2026
e85afae
Initial plan
Copilot Jul 17, 2026
c4a83b9
Base commit from target branch
rajanalavarnitha-wq Jul 16, 2026
1c0b07f
Add AddressPrefixSet.tsp
rajanalavarnitha-wq Jul 16, 2026
853c25a
Add AddressPrefixSetCreate.json
rajanalavarnitha-wq Jul 16, 2026
2b018ba
Add AddressPrefixSetDelete.json
rajanalavarnitha-wq Jul 16, 2026
deceeef
Add AddressPrefixSetGet.json
rajanalavarnitha-wq Jul 16, 2026
7c46577
Add AddressPrefixSetList.json
rajanalavarnitha-wq Jul 16, 2026
540ad82
Add AddressPrefixSetCreate.json
rajanalavarnitha-wq Jul 16, 2026
331591e
Add AddressPrefixSetDelete.json
rajanalavarnitha-wq Jul 16, 2026
9c89d29
Add AddressPrefixSetGet.json
rajanalavarnitha-wq Jul 16, 2026
bca9925
Add AddressPrefixSetList.json
rajanalavarnitha-wq Jul 16, 2026
f5c36ce
Update main.tsp for AddressPrefixSet
rajanalavarnitha-wq Jul 16, 2026
41feb4a
Update readme.md for AddressPrefixSet
rajanalavarnitha-wq Jul 16, 2026
3371106
Update virtualNetwork.json for AddressPrefixSet
rajanalavarnitha-wq Jul 16, 2026
39f5dee
fix: add @minItems(1) to addressPrefixes array
rajanalavarnitha-wq Jul 17, 2026
dbee725
fix: clean readme.md - remove unrelated changes, keep only AddressPre…
rajanalavarnitha-wq Jul 17, 2026
70dbe33
fix: add minItems:1 to addressPrefixes in virtualNetwork.json
rajanalavarnitha-wq Jul 17, 2026
5eb0056
fix: clean Network/main.tsp - keep only AddressPrefixSet import and v…
rajanalavarnitha-wq Jul 17, 2026
e26fba3
fix: clean Common/main.tsp - only add v2025_09_01 version
rajanalavarnitha-wq Jul 17, 2026
8492a91
fix: remove unrelated firstPartyServiceTagId from IpTag in virtualNet…
rajanalavarnitha-wq Jul 17, 2026
0fb0aee
fix: add package-2025-09-01 tag to readme with all swagger input-files
rajanalavarnitha-wq Jul 17, 2026
aa322bc
Apply remaining changes
Copilot Jul 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
12 changes: 12 additions & 0 deletions specification/network/cspell.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,18 @@ overrides:
- Reimages
- privatenicipconfig
- publicnicipconfig
- filename: >-
**/specification/network/resource-manager/Microsoft.Network/Network/stable/2025-09-01/applicationGateway.json
words:
- Conditon
- filename: >-
**/specification/network/resource-manager/Microsoft.Network/Network/stable/2025-09-01/virtualNetwork.json
words:
- reimage
- Reimage
- Reimages
- privatenicipconfig
- publicnicipconfig
- filename: >-
**/specification/network/resource-manager/Microsoft.Network/Network/Network/NetworkVirtualAppliance.tsp
words:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,11 @@ enum Versions {
* The 2025-07-01 API version.
*/
v2025_07_01: "2025-07-01",

/**
* The 2025-09-01 API version.
*/
v2025_09_01: "2025-09-01",
}

#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
import "@azure-tools/typespec-azure-core";
import "@azure-tools/typespec-azure-resource-manager";
import "@typespec/rest";
import "@typespec/versioning";
import "./models.tsp";
import "./ApplicationSecurityGroup.tsp";
import "../Common/ApplicationSecurityGroup.tsp";

using TypeSpec.Rest;
using Azure.ResourceManager;
using TypeSpec.Http;
using TypeSpec.Versioning;
using Common;

namespace Microsoft.Network;

/**
* Address prefix set child resource of an application security group.
*/
#suppress "@azure-tools/typespec-azure-core/no-private-usage" "Legacy sub-resource model uses ARM private types for compatibility with existing Network RP patterns"
#suppress "@azure-tools/typespec-azure-resource-manager/arm-custom-resource-usage-discourage" "AddressPrefixSet is a sub-resource of ApplicationSecurityGroup using legacy Network RP resource patterns"
#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "Extends SubResourceModel to match existing Network RP sub-resource conventions"
#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Uses legacy ARM resource patterns consistent with other Network RP sub-resources"
@added(Versions.v2025_09_01)
@Azure.ResourceManager.Legacy.feature(Features.virtualNetwork)
@parentResource(ApplicationSecurityGroup)
@Http.Private.includeInapplicableMetadataInPayload(false)
model AddressPrefixSet extends SubResourceModel {
/** Properties of the address prefix set. */
properties?: AddressPrefixSetPropertiesFormat;

/** The name of the address prefix set. */
@visibility(Lifecycle.Read)
@path
@key("addressPrefixSetName")
@segment("addressPrefixSets")
@pattern("^[a-zA-Z0-9]([a-zA-Z0-9_.-]{0,78}[a-zA-Z0-9_])?$")
name: string;

/** A unique read-only string that changes whenever the resource is updated. */
#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "etag is a standard ARM envelope property returned by the Network RP for concurrency control"
@visibility(Lifecycle.Read)
etag?: string;

/** Type of the resource. */
#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "type is a standard ARM envelope property indicating the resource type"
@visibility(Lifecycle.Read)
type?: string;

/** The system metadata related to this resource. */
#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "systemData is a standard ARM envelope property for resource metadata tracking"
@visibility(Lifecycle.Read)
systemData?: Azure.ResourceManager.Foundations.SystemData;
}

/**
* Properties of address prefix set.
*/
#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Uses legacy ARM resource patterns consistent with other Network RP property models"
@added(Versions.v2025_09_01)
@Azure.ResourceManager.Legacy.feature(Features.virtualNetwork)
model AddressPrefixSetPropertiesFormat {
/** The list of address prefixes in CIDR notation. Supports both IPv4 and IPv6 CIDR notation (e.g. '10.0.0.0/16', '2001:db8::/32'). */
@minItems(1)
addressPrefixes: string[];

/** The provisioning state of the address prefix set resource. */
@visibility(Lifecycle.Read)
provisioningState?: ProvisioningState;
}

#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Uses legacy ARM resource patterns consistent with other Network RP operation interfaces"
@added(Versions.v2025_09_01)
@Azure.ResourceManager.Legacy.feature(Features.virtualNetwork)
@armResourceOperations(#{ omitTags: true })
interface AddressPrefixSets {
/**
* Gets the specified address prefix set.
*/
@tag("AddressPrefixSets")
get is ArmResourceRead<AddressPrefixSet, Error = CloudError>;

/**
* Creates or updates an address prefix set.
*/
@tag("AddressPrefixSets")
createOrUpdate is ArmResourceCreateOrReplaceAsync<
AddressPrefixSet,
Error = CloudError
>;

/**
* Deletes the specified address prefix set.
*/
#suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "Network RP delete operations use 202+204 pattern without 200, matching existing ASG and other resource delete conventions"
@tag("AddressPrefixSets")
delete is ArmResourceDeleteWithoutOkAsync<
AddressPrefixSet,
Response = ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse,
Error = CloudError
>;

/**
* Gets all address prefix sets in an application security group.
*/
@tag("AddressPrefixSets")
list is ArmResourceListByParent<AddressPrefixSet, Error = CloudError>;
}

@@doc(AddressPrefixSet.name, "The name of the address prefix set.");
@@doc(AddressPrefixSet.properties, "Properties of the address prefix set.");
@@doc(
AddressPrefixSets.createOrUpdate::parameters.resource,
"Parameters supplied to the create or update address prefix set operation."
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
{
"parameters": {
"api-version": "2025-09-01",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "rg1",
"applicationSecurityGroupName": "test-asg",
"addressPrefixSetName": "test-prefix-set",
"resource": {
"properties": {
"addressPrefixes": [
"10.0.0.0/16",
"192.168.1.0/24",
"2001:db8::/32"
]
}
}
},
"responses": {
"200": {
"body": {
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Network/applicationSecurityGroups/test-asg/addressPrefixSets/test-prefix-set",
"name": "test-prefix-set",
"type": "Microsoft.Network/applicationSecurityGroups/addressPrefixSets",
"etag": "W/\"00000000-0000-0000-0000-000000000000\"",
"properties": {
"addressPrefixes": [
"10.0.0.0/16",
"192.168.1.0/24",
"2001:db8::/32"
],
"provisioningState": "Succeeded"
}
}
},
"201": {
"body": {
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Network/applicationSecurityGroups/test-asg/addressPrefixSets/test-prefix-set",
"name": "test-prefix-set",
"type": "Microsoft.Network/applicationSecurityGroups/addressPrefixSets",
"etag": "W/\"00000000-0000-0000-0000-000000000000\"",
"properties": {
"addressPrefixes": [
"10.0.0.0/16",
"192.168.1.0/24",
"2001:db8::/32"
],
"provisioningState": "Updating"
}
}
}
},
"operationId": "AddressPrefixSets_CreateOrUpdate",
"title": "Create address prefix set"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"parameters": {
"api-version": "2025-09-01",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "rg1",
"applicationSecurityGroupName": "test-asg",
"addressPrefixSetName": "test-prefix-set"
},
"responses": {
"202": {
"headers": {
"Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus/operations/00000000-0000-0000-0000-000000000000?api-version=2025-09-01",
"Retry-After": 10
}
},
"204": {
"description": "Request successful. Resource does not exist."
}
},
"operationId": "AddressPrefixSets_Delete",
"title": "Delete address prefix set"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"parameters": {
"api-version": "2025-09-01",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "rg1",
"applicationSecurityGroupName": "test-asg",
"addressPrefixSetName": "test-prefix-set"
},
"responses": {
"200": {
"body": {
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Network/applicationSecurityGroups/test-asg/addressPrefixSets/test-prefix-set",
"name": "test-prefix-set",
"type": "Microsoft.Network/applicationSecurityGroups/addressPrefixSets",
"etag": "W/\"00000000-0000-0000-0000-000000000000\"",
"properties": {
"addressPrefixes": [
"10.0.0.0/16",
"192.168.1.0/24",
"2001:db8::/32"
],
"provisioningState": "Succeeded"
}
}
}
},
"operationId": "AddressPrefixSets_Get",
"title": "Get address prefix set"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
{
"parameters": {
"api-version": "2025-09-01",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "rg1",
"applicationSecurityGroupName": "test-asg"
},
"responses": {
"200": {
"body": {
"value": [
{
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Network/applicationSecurityGroups/test-asg/addressPrefixSets/test-prefix-set1",
"name": "test-prefix-set1",
"type": "Microsoft.Network/applicationSecurityGroups/addressPrefixSets",
"etag": "W/\"00000000-0000-0000-0000-000000000000\"",
"properties": {
"addressPrefixes": [
"10.0.0.0/16",
"192.168.1.0/24"
],
"provisioningState": "Succeeded"
}
},
{
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Network/applicationSecurityGroups/test-asg/addressPrefixSets/test-prefix-set2",
"name": "test-prefix-set2",
"type": "Microsoft.Network/applicationSecurityGroups/addressPrefixSets",
"etag": "W/\"00000000-0000-0000-0000-000000000001\"",
"properties": {
"addressPrefixes": [
"172.16.0.0/12",
"2001:db8::/32"
],
"provisioningState": "Succeeded"
}
}
]
}
}
},
"operationId": "AddressPrefixSets_List",
"title": "List address prefix sets"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"parameters": {
"api-version": "2025-09-01",
"resourceGroupName": "rg1",
"subscriptionId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
"virtualNetworkGatewayName": "vpngw"
},
"responses": {
"200": {
"body": {
"value": [
{
"radiusServerAddress": "1.1.1.1",
"radiusServerSecret": "*****"
},
{
"radiusServerAddress": "2.2.2.2",
"radiusServerSecret": "*****"
}
]
}
}
},
"operationId": "VirtualNetworkGateways_ListRadiusSecrets",
"title": "ListAllVirtualNetworkGatewayRadiusServerSecrets"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"parameters": {
"api-version": "2025-09-01",
"resourceGroupName": "rg1",
"subscriptionId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
"vpnServerConfigurationName": "vpnserverconfig"
},
"responses": {
"200": {
"body": {
"value": [
{
"radiusServerAddress": "1.1.1.1",
"radiusServerSecret": "*****"
},
{
"radiusServerAddress": "2.2.2.2",
"radiusServerSecret": "*****"
}
]
}
}
},
"operationId": "VpnServerConfigurations_ListRadiusSecrets",
"title": "ListAllVpnServerConfigurationRadiusServerSecrets"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"parameters": {
"api-version": "2025-09-01",
"subscriptionId": "72f988bf-86f1-41af-91ab-2d7cd011db47"
},
"responses": {
"200": {
"body": {
"value": [
"Accept-Charset"
]
}
}
},
"operationId": "ApplicationGateways_ListAvailableRequestHeaders",
"title": "Get Available Request Headers"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"parameters": {
"api-version": "2025-09-01",
"subscriptionId": "72f988bf-86f1-41af-91ab-2d7cd011db47"
},
"responses": {
"200": {
"body": [
"Access-Control-Allow-Origin"
]
}
},
"operationId": "ApplicationGateways_ListAvailableResponseHeaders",
"title": "Get Available Response Headers"
}
Loading