Skip to content

Add new API version for DNS resolver with DNS security policy changes for 2025-05-01 #34615

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: dnsresolver-2025-05-01-ga-release
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{

Check notice on line 1 in specification/dnsresolver/resource-manager/Microsoft.Network/stable/2025-05-01/dnsresolverpolicy.json

View workflow job for this annotation

GitHub Actions / TypeSpec Requirement

Brownfield services will soon be required to convert from OpenAPI to TypeSpec. See https://aka.ms/azsdk/typespec.
"swagger": "2.0",
"info": {
"title": "DnsResolverPolicyManagementClient",
Expand Down Expand Up @@ -64,14 +64,14 @@
}
],
"responses": {
"201": {
"description": "The DNS resolver policy has been created.",
"200": {
"description": "The DNS resolver policy has been updated.",
"schema": {
"$ref": "#/definitions/DnsResolverPolicy"
}
},
"200": {
"description": "The DNS resolver policy has been updated.",
"201": {
"description": "The DNS resolver policy has been created.",
"schema": {
"$ref": "#/definitions/DnsResolverPolicy"
}
Expand Down Expand Up @@ -368,14 +368,14 @@
}
],
"responses": {
"201": {
"description": "The DNS security rule has been created.",
"200": {
"description": "The DNS security rule has been updated.",
"schema": {
"$ref": "#/definitions/DnsSecurityRule"
}
},
"200": {
"description": "The DNS security rule has been updated.",
"201": {
"description": "The DNS security rule has been created.",
"schema": {
"$ref": "#/definitions/DnsSecurityRule"
}
Expand Down Expand Up @@ -642,14 +642,14 @@
}
],
"responses": {
"201": {
"description": "The DNS resolver policy virtual network link has been created.",
"200": {
"description": "The DNS resolver policy virtual network link has been updated.",
"schema": {
"$ref": "#/definitions/DnsResolverPolicyVirtualNetworkLink"
}
},
"200": {
"description": "The DNS resolver policy virtual network link has been updated.",
"201": {
"description": "The DNS resolver policy virtual network link has been created.",
"schema": {
"$ref": "#/definitions/DnsResolverPolicyVirtualNetworkLink"
}
Expand Down Expand Up @@ -913,14 +913,14 @@
}
],
"responses": {
"201": {
"description": "The DNS resolver domain list has been created.",
"200": {
"description": "The DNS resolver domain list has been updated.",
"schema": {
"$ref": "#/definitions/DnsResolverDomainList"
}
},
"200": {
"description": "The DNS resolver domain list has been updated.",
"201": {
"description": "The DNS resolver domain list has been created.",
"schema": {
"$ref": "#/definitions/DnsResolverDomainList"
}
Expand All @@ -934,8 +934,11 @@
},
"x-ms-long-running-operation": true,
"x-ms-examples": {
"Upsert DNS resolver domain list": {
"Upsert DNS resolver domain list with less than 1000 domains": {
"$ref": "./examples/DnsResolverDomainList_Put.json"
},
"Upsert DNS resolver domain list with bulk number of domains": {
"$ref": "./examples/DnsResolverDomainList_BulkDomains_Put.json"
}
}
},
Expand Down Expand Up @@ -1084,8 +1087,11 @@
}
},
"x-ms-examples": {
"Retrieve DNS resolver domain list": {
"Retrieve DNS resolver domain list with less than 1000 domains": {
"$ref": "./examples/DnsResolverDomainList_Get.json"
},
"Retrieve DNS resolver domain list with bulk number of domains": {
"$ref": "./examples/DnsResolverDomainList_BulkDomains_Get.json"
}
}
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bulk

API design
just having one action called 'bulk' seems confusing to me - compared to having separate actions 'bulkDownload' and 'bulkUpload'?

Do you think its better for some reason?

Expand Down Expand Up @@ -1177,6 +1183,75 @@
}
}
},
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsResolverDomainLists/{dnsResolverDomainListName}/bulk": {
"post": {
"tags": [
"DnsResolverDomainLists"
],
"operationId": "DnsResolverDomainLists_Bulk",
"description": "Uploads or downloads the list of domains for a DNS Resolver Domain List from a storage link.",
"parameters": [
{
"$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter"
},
{
"$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter"
},
{
"$ref": "#/parameters/DnsResolverDomainListNameParameter"
},
{
"name": "parameters",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/DnsResolverDomainListBulk"
},
"description": "Parameters supplied to the bulk domain list operation."
},
{
"$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter"
},
{
"$ref": "#/parameters/IfMatchParameter"
},
{
"$ref": "#/parameters/IfNoneMatchParameter"
}
],
"responses": {
"200": {
"description": "The DNS resolver domain list bulk request was successful.",
"schema": {
"$ref": "#/definitions/DnsResolverDomainList"
}
},
"202": {
"description": "The operation to upload/download domains to the DNS Resolver Domain List has been accepted and will complete asynchronously.",
"headers": {
"Location": {
"type": "string"
}
}
},
"default": {
"description": "Default response. It will be deserialized as per the Error definition.",
"schema": {
"$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse"
}
}
},
"x-ms-long-running-operation": true,
"x-ms-examples": {
"Upload DNS resolver domain list domains": {
"$ref": "./examples/DnsResolverDomainList_BulkUpload.json"
},
"Download DNS resolver domain list domains": {
"$ref": "./examples/DnsResolverDomainList_BulkDownload.json"
}
}
}
},
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/listDnsResolverPolicies": {
"post": {
"tags": [
Expand Down Expand Up @@ -1307,8 +1382,8 @@
"type": "object",
"required": [
"priority",
"action",
"dnsResolverDomainLists"
"dnsResolverDomainLists",
"action"
],
"properties": {
"priority": {
Expand Down Expand Up @@ -1478,17 +1553,6 @@
"name": "actionType",
"modelAsString": true
}
},
"blockResponseCode": {
"type": "string",
"description": "The response code for block actions.",
"enum": [
"SERVFAIL"
],
"x-ms-enum": {
"name": "BlockResponseCode",
"modelAsString": true
}
}
}
},
Expand Down Expand Up @@ -1582,9 +1646,6 @@
"DnsResolverDomainListProperties": {
"description": "Represents the properties of a DNS resolver domain list.",
"type": "object",
"required": [
"domains"
],
"properties": {
"domains": {
"description": "The domains in the domain list.",
Expand All @@ -1593,6 +1654,11 @@
"type": "string"
}
},
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you might want to mention whether its possible to have both of these properties or if they're exclusive?

"domainsUrl": {
"description": "The URL for bulk upload or download for domain lists containing larger set of domains.",
"type": "string",
"readOnly": true
},
"provisioningState": {
"description": "The current provisioning state of the DNS resolver domain list. This is a read-only property and any attempt to set this value will be ignored.",
"readOnly": true,
Expand All @@ -1608,9 +1674,6 @@
"DnsResolverDomainList": {
"description": "Describes a DNS resolver domain list.",
"type": "object",
"required": [
"properties"
],
"properties": {
"etag": {
"description": "ETag of the DNS resolver domain list.",
Expand Down Expand Up @@ -1652,7 +1715,7 @@
"type": "object",
"properties": {
"properties": {
"description": "Updatable properties of the DNS resolver policy virtual network link.",
"description": "Updatable properties of the DNS resolver domain list.",
"$ref": "#/definitions/DnsResolverDomainListPatchProperties",
"x-ms-client-flatten": true
},
Expand Down Expand Up @@ -1688,6 +1751,38 @@
}
}
},
"DnsResolverDomainListBulkProperties": {
"description": "Describes DNS resolver domain list properties for bulk UPLOAD or DOWNLOAD operations.",
"type": "object",
"required": [
"storageUrl",
"action"
],
"properties": {
"storageUrl": {
"description": "The storage account blob file URL to be used in the bulk upload or download request of DNS resolver domain list.",
"type": "string"
},
"action": {
"description": "The action to take in the request, Upload or Download.",
"$ref": "#/definitions/DnsResolverDomainListBulkActionType"
}
}
},
"DnsResolverDomainListBulk": {
"description": "Describes a DNS resolver domain list for bulk UPLOAD or DOWNLOAD operations.",
"type": "object",
"required": [
"properties"
],
"properties": {
"properties": {
"description": "Properties of the DNS resolver domain list upload or download request.",
"$ref": "#/definitions/DnsResolverDomainListBulkProperties",
"x-ms-client-flatten": true
}
}
},
"ProvisioningState": {
"description": "The current provisioning state of the resource.",
"type": "string",
Expand All @@ -1705,6 +1800,18 @@
"modelAsString": true
}
},
"DnsResolverDomainListBulkActionType": {
"description": "The action type in requests for bulk upload or download of a DNS resolver domain list.",
"type": "string",
"enum": [
"Upload",
"Download"
],
"x-ms-enum": {
"name": "Action",
"modelAsString": true
}
},
"ResourceGuid": {
"type": "string",
"description": "The Guid property of the resource."
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"parameters": {
"subscriptionId": "abdd4249-9f34-4cc6-8e42-c2e32110603e",
"resourceGroupName": "sampleResourceGroup",
"dnsResolverDomainListName": "sampleDnsResolverDomainList",
"api-version": "2025-05-01"
},
"responses": {
"200": {
"body": {
"id": "/subscriptions/abdd4249-9f34-4cc6-8e42-c2e32110603e/resourceGroups/sampleResourceGroup/providers/Microsoft.Network/dnsResolverDomainLists/sampleDnsResolverDomainList",
"name": "sampleDnsResolverDomainList",
"type": "Microsoft.Network/dnsResolverDomainLists",
"systemData": {
"createdByType": "Application",
"createdAt": "2021-04-03T01:01:01.1075056Z",
"lastModifiedByType": "Application",
"lastModifiedAt": "2021-04-04T02:03:01.1974346Z"
},
"location": "westus2",
"etag": "00000000-0000-0000-0000-000000000000",
"tags": {
"key1": "value1"
},
"properties": {
"domainsUrl": "/subscriptions/abdd4249-9f34-4cc6-8e42-c2e32110603e/resourceGroups/sampleResourceGroup/providers/Microsoft.Network/dnsResolverDomainLists/sampleDnsResolverDomainList/bulk",
Copy link
Member

@TimLovellSmith TimLovellSmith May 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

domainsUrl

I'm curious about why a domainsUrl is a relative uri. Or is it more of a resource id? In which case why call it an url?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

don't see any real problem here anyway

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I'm still confused about why the 'dns resolver domain links get bulk domains operation" gets you a domains url which is itself...
isn't it just ANOTHER get bulk domains operation?
if this is the uRL?

      "domainsUrl": "/subscriptions/abdd4249-9f34-4cc6-8e42-c2e32110603e/resourceGroups/sampleResourceGroup/providers/Microsoft.Network/dnsResolverDomainLists/sampleDnsResolverDomainList/bulk",

is this as recursive as it sounds??

"provisioningState": "Succeeded",
"resourceGuid": "a7e1a32c-498c-401c-a805-5bc3518257b8"
}
}
}
}
}
Loading
Loading