Skip to content
Merged
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?

Copy link
Member Author

Choose a reason for hiding this comment

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

Hmm I think we were thinking it would be easier to have one API added and doing the split work in the service itself but I could see how a split may also have worked. Could we revisit this in a future API revision ?

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,17 +1646,19 @@
"DnsResolverDomainListProperties": {
"description": "Represents the properties of a DNS resolver domain list.",
"type": "object",
"required": [
"domains"
],
"properties": {
"domains": {
"description": "The domains in the domain list.",
"description": "The domains in the domain list. Will be null if user is using large domain list.",
"type": "array",
"items": {
"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. This will be populated if domains is empty or null.",
"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? #Resolved

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??

Copy link
Member Author

Choose a reason for hiding this comment

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

Hi Tim, you are correct, ARM has reviewed the changess previously in the spec-PR repository.

The idea is that this URL is to differentiate from domain lists that are using domains stored inline as a property vs domain lists that have their domains stored in a storage file. The property moreso acts as a logic switch.

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