diff --git a/modules/app-configuration/configuration-store/README.md b/modules/app-configuration/configuration-store/README.md index d03eb95d57..5ad6d20623 100644 --- a/modules/app-configuration/configuration-store/README.md +++ b/modules/app-configuration/configuration-store/README.md @@ -833,14 +833,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -868,26 +874,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/app-configuration/configuration-store/main.bicep b/modules/app-configuration/configuration-store/main.bicep index 5d1521e212..54abbcefaa 100644 --- a/modules/app-configuration/configuration-store/main.bicep +++ b/modules/app-configuration/configuration-store/main.bicep @@ -311,16 +311,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/app-configuration/configuration-store/main.json b/modules/app-configuration/configuration-store/main.json index 1063e16033..ca7d97bad1 100644 --- a/modules/app-configuration/configuration-store/main.json +++ b/modules/app-configuration/configuration-store/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "6136989204056808614" + "templateHash": "14821162059319342865" }, "name": "App Configuration Stores", "description": "This module deploys an App Configuration Store.", @@ -183,12 +183,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -204,16 +210,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -900,7 +926,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -997,6 +1023,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -1033,7 +1124,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -1086,7 +1177,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -1153,7 +1244,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/automation/automation-account/README.md b/modules/automation/automation-account/README.md index b43abe1289..82ca64d9a4 100644 --- a/modules/automation/automation-account/README.md +++ b/modules/automation/automation-account/README.md @@ -948,14 +948,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -983,26 +989,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/automation/automation-account/main.bicep b/modules/automation/automation-account/main.bicep index c65959f494..1f5fc86dad 100644 --- a/modules/automation/automation-account/main.bicep +++ b/modules/automation/automation-account/main.bicep @@ -455,16 +455,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/automation/automation-account/main.json b/modules/automation/automation-account/main.json index 16af89f8b9..0a2a91c660 100644 --- a/modules/automation/automation-account/main.json +++ b/modules/automation/automation-account/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "14935357028056674724" + "templateHash": "7186571646898746589" }, "name": "Automation Accounts", "description": "This module deploys an Azure Automation Account.", @@ -182,12 +182,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -203,16 +209,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -2448,7 +2474,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -2545,6 +2571,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -2581,7 +2672,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -2634,7 +2725,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -2701,7 +2792,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/batch/batch-account/README.md b/modules/batch/batch-account/README.md index 10407c5c7d..2714264c03 100644 --- a/modules/batch/batch-account/README.md +++ b/modules/batch/batch-account/README.md @@ -738,14 +738,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -773,26 +779,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/batch/batch-account/main.bicep b/modules/batch/batch-account/main.bicep index 38306efc50..dc5bad992d 100644 --- a/modules/batch/batch-account/main.bicep +++ b/modules/batch/batch-account/main.bicep @@ -321,16 +321,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/batch/batch-account/main.json b/modules/batch/batch-account/main.json index 3e0eebcb72..e44f57e23f 100644 --- a/modules/batch/batch-account/main.json +++ b/modules/batch/batch-account/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "8281874211111057324" + "templateHash": "4335449072974068086" }, "name": "Batch Accounts", "description": "This module deploys a Batch Account.", @@ -183,12 +183,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -204,16 +210,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -763,7 +789,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -860,6 +886,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -896,7 +987,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -949,7 +1040,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -1016,7 +1107,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/cache/redis-enterprise/README.md b/modules/cache/redis-enterprise/README.md index 8343cc8262..27838446ca 100644 --- a/modules/cache/redis-enterprise/README.md +++ b/modules/cache/redis-enterprise/README.md @@ -655,14 +655,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -690,26 +696,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/cache/redis-enterprise/main.bicep b/modules/cache/redis-enterprise/main.bicep index ed004ca936..3e0d3f4b72 100644 --- a/modules/cache/redis-enterprise/main.bicep +++ b/modules/cache/redis-enterprise/main.bicep @@ -257,16 +257,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/cache/redis-enterprise/main.json b/modules/cache/redis-enterprise/main.json index 5fc8d2bf7c..440a5b45e5 100644 --- a/modules/cache/redis-enterprise/main.json +++ b/modules/cache/redis-enterprise/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "2411064933627030246" + "templateHash": "10802158443173953602" }, "name": "Redis Cache Enterprise", "description": "This module deploys a Redis Cache Enterprise.", @@ -160,12 +160,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -181,16 +187,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -868,7 +894,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -965,6 +991,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -1001,7 +1092,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -1054,7 +1145,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -1121,7 +1212,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/cache/redis/README.md b/modules/cache/redis/README.md index 9f468d7f98..340e8ae943 100644 --- a/modules/cache/redis/README.md +++ b/modules/cache/redis/README.md @@ -570,14 +570,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -605,26 +611,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/cache/redis/main.bicep b/modules/cache/redis/main.bicep index af3b549ba9..edcb269196 100644 --- a/modules/cache/redis/main.bicep +++ b/modules/cache/redis/main.bicep @@ -324,16 +324,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/cache/redis/main.json b/modules/cache/redis/main.json index fa2e2fe2d9..4d5ef453b0 100644 --- a/modules/cache/redis/main.json +++ b/modules/cache/redis/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "9496315762768268" + "templateHash": "14680360433148567844" }, "name": "Redis Cache", "description": "This module deploys a Redis Cache.", @@ -183,12 +183,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -204,16 +210,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -766,7 +792,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -863,6 +889,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -899,7 +990,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -952,7 +1043,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -1019,7 +1110,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/cognitive-services/account/README.md b/modules/cognitive-services/account/README.md index 4d85e5be23..3ee839e1e7 100644 --- a/modules/cognitive-services/account/README.md +++ b/modules/cognitive-services/account/README.md @@ -870,14 +870,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -905,26 +911,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/cognitive-services/account/main.bicep b/modules/cognitive-services/account/main.bicep index d610ca257a..2e1586eec9 100644 --- a/modules/cognitive-services/account/main.bicep +++ b/modules/cognitive-services/account/main.bicep @@ -387,16 +387,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/cognitive-services/account/main.json b/modules/cognitive-services/account/main.json index edead294ff..7921180ab2 100644 --- a/modules/cognitive-services/account/main.json +++ b/modules/cognitive-services/account/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "4580837563605630694" + "templateHash": "17007188729160940142" }, "name": "Cognitive Services", "description": "This module deploys a Cognitive Service.", @@ -183,12 +183,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -204,16 +210,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -851,7 +877,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -948,6 +974,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -984,7 +1075,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -1037,7 +1128,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -1104,7 +1195,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/container-registry/registry/README.md b/modules/container-registry/registry/README.md index 27720aff64..85c2a389ff 100644 --- a/modules/container-registry/registry/README.md +++ b/modules/container-registry/registry/README.md @@ -933,14 +933,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -968,26 +974,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/container-registry/registry/main.bicep b/modules/container-registry/registry/main.bicep index bcd5d249c5..e5fe2166d4 100644 --- a/modules/container-registry/registry/main.bicep +++ b/modules/container-registry/registry/main.bicep @@ -452,16 +452,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/container-registry/registry/main.json b/modules/container-registry/registry/main.json index f7d3b0e0b4..6470bbd3ca 100644 --- a/modules/container-registry/registry/main.json +++ b/modules/container-registry/registry/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "4552885966837623579" + "templateHash": "14688875704864672455" }, "name": "Azure Container Registries (ACR)", "description": "This module deploys an Azure Container Registry (ACR).", @@ -183,12 +183,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -204,16 +210,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -1431,7 +1457,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -1528,6 +1554,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -1564,7 +1655,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -1617,7 +1708,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -1684,7 +1775,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/data-factory/factory/README.md b/modules/data-factory/factory/README.md index 8c0c5003d4..6a29414c72 100644 --- a/modules/data-factory/factory/README.md +++ b/modules/data-factory/factory/README.md @@ -723,14 +723,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -758,26 +764,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/data-factory/factory/main.bicep b/modules/data-factory/factory/main.bicep index ef4b508dae..381ed4e1db 100644 --- a/modules/data-factory/factory/main.bicep +++ b/modules/data-factory/factory/main.bicep @@ -330,16 +330,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/data-factory/factory/main.json b/modules/data-factory/factory/main.json index bbb370ff4e..aa193cadf8 100644 --- a/modules/data-factory/factory/main.json +++ b/modules/data-factory/factory/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "11806238755138054005" + "templateHash": "1415884638599377742" }, "name": "Data Factories", "description": "This module deploys a Data Factory.", @@ -183,12 +183,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -204,16 +210,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -1169,7 +1195,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -1266,6 +1292,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -1302,7 +1393,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -1355,7 +1446,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -1422,7 +1513,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/databricks/workspace/README.md b/modules/databricks/workspace/README.md index 402bcdc57f..5faf2f642c 100644 --- a/modules/databricks/workspace/README.md +++ b/modules/databricks/workspace/README.md @@ -678,14 +678,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -713,26 +719,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/databricks/workspace/main.bicep b/modules/databricks/workspace/main.bicep index 1468f38d16..d0f262ea88 100644 --- a/modules/databricks/workspace/main.bicep +++ b/modules/databricks/workspace/main.bicep @@ -391,16 +391,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/databricks/workspace/main.json b/modules/databricks/workspace/main.json index ec49639153..69e194ad09 100644 --- a/modules/databricks/workspace/main.json +++ b/modules/databricks/workspace/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "19156344202796197" + "templateHash": "1354063990980525308" }, "name": "Azure Databricks Workspaces", "description": "This module deploys an Azure Databricks Workspace.", @@ -160,12 +160,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -181,16 +187,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -802,7 +828,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -899,6 +925,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -935,7 +1026,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -988,7 +1079,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -1055,7 +1146,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/digital-twins/digital-twins-instance/README.md b/modules/digital-twins/digital-twins-instance/README.md index 8b7a1480d9..6994d24ecb 100644 --- a/modules/digital-twins/digital-twins-instance/README.md +++ b/modules/digital-twins/digital-twins-instance/README.md @@ -505,14 +505,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -540,26 +546,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/digital-twins/digital-twins-instance/main.bicep b/modules/digital-twins/digital-twins-instance/main.bicep index 8ff9c75278..6db0117957 100644 --- a/modules/digital-twins/digital-twins-instance/main.bicep +++ b/modules/digital-twins/digital-twins-instance/main.bicep @@ -285,16 +285,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/digital-twins/digital-twins-instance/main.json b/modules/digital-twins/digital-twins-instance/main.json index d770a0e408..166bf7d6ff 100644 --- a/modules/digital-twins/digital-twins-instance/main.json +++ b/modules/digital-twins/digital-twins-instance/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "12569577248629110844" + "templateHash": "4900944127202083879" }, "name": "Digital Twins Instances", "description": "This module deploys an Azure Digital Twins Instance.", @@ -160,12 +160,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -181,16 +187,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -1167,7 +1193,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -1264,6 +1290,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -1300,7 +1391,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -1353,7 +1444,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -1420,7 +1511,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/document-db/database-account/README.md b/modules/document-db/database-account/README.md index de51a3b003..4acd72bad8 100644 --- a/modules/document-db/database-account/README.md +++ b/modules/document-db/database-account/README.md @@ -1687,14 +1687,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -1722,26 +1728,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/document-db/database-account/main.bicep b/modules/document-db/database-account/main.bicep index ee19348385..0920e0acfa 100644 --- a/modules/document-db/database-account/main.bicep +++ b/modules/document-db/database-account/main.bicep @@ -417,16 +417,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/document-db/database-account/main.json b/modules/document-db/database-account/main.json index 761eb727b6..3ada7183a7 100644 --- a/modules/document-db/database-account/main.json +++ b/modules/document-db/database-account/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "13265582198003672508" + "templateHash": "5728902559638159959" }, "name": "DocumentDB Database Accounts", "description": "This module deploys a DocumentDB Database Account.", @@ -182,12 +182,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -203,16 +209,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -1867,7 +1893,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -1964,6 +1990,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -2000,7 +2091,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -2053,7 +2144,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -2120,7 +2211,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/event-grid/domain/README.md b/modules/event-grid/domain/README.md index 636322d154..aa3844ddc3 100644 --- a/modules/event-grid/domain/README.md +++ b/modules/event-grid/domain/README.md @@ -585,14 +585,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -620,26 +626,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/event-grid/domain/main.bicep b/modules/event-grid/domain/main.bicep index 4e5e97ad29..4652a9ba5c 100644 --- a/modules/event-grid/domain/main.bicep +++ b/modules/event-grid/domain/main.bicep @@ -235,16 +235,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/event-grid/domain/main.json b/modules/event-grid/domain/main.json index c605dc1497..f5177ce8ca 100644 --- a/modules/event-grid/domain/main.json +++ b/modules/event-grid/domain/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "18074779137586977163" + "templateHash": "1947450144883968914" }, "name": "Event Grid Domains", "description": "This module deploys an Event Grid Domain.", @@ -160,12 +160,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -181,16 +187,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -745,7 +771,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -842,6 +868,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -878,7 +969,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -931,7 +1022,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -998,7 +1089,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/event-grid/topic/README.md b/modules/event-grid/topic/README.md index 8f7c1adab0..4160d34110 100644 --- a/modules/event-grid/topic/README.md +++ b/modules/event-grid/topic/README.md @@ -618,14 +618,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -653,26 +659,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/event-grid/topic/main.bicep b/modules/event-grid/topic/main.bicep index 4e996d59a5..9f249e8028 100644 --- a/modules/event-grid/topic/main.bicep +++ b/modules/event-grid/topic/main.bicep @@ -237,16 +237,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/event-grid/topic/main.json b/modules/event-grid/topic/main.json index 52eebfaa89..79653c975b 100644 --- a/modules/event-grid/topic/main.json +++ b/modules/event-grid/topic/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "17629869517360394667" + "templateHash": "17269173170243707502" }, "name": "Event Grid Topics", "description": "This module deploys an Event Grid Topic.", @@ -160,12 +160,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -181,16 +187,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -822,7 +848,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -919,6 +945,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -955,7 +1046,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -1008,7 +1099,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -1075,7 +1166,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/event-hub/namespace/README.md b/modules/event-hub/namespace/README.md index bb1a32227b..c4ceb8149a 100644 --- a/modules/event-hub/namespace/README.md +++ b/modules/event-hub/namespace/README.md @@ -1061,14 +1061,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -1096,26 +1102,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/event-hub/namespace/main.bicep b/modules/event-hub/namespace/main.bicep index f7ec5002f5..bc4eb48806 100644 --- a/modules/event-hub/namespace/main.bicep +++ b/modules/event-hub/namespace/main.bicep @@ -413,16 +413,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/event-hub/namespace/main.json b/modules/event-hub/namespace/main.json index ea70a72f71..eebb91f004 100644 --- a/modules/event-hub/namespace/main.json +++ b/modules/event-hub/namespace/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "14752778402428640491" + "templateHash": "6601963948564613336" }, "name": "Event Hub Namespaces", "description": "This module deploys an Event Hub Namespace.", @@ -183,12 +183,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -204,16 +210,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -1963,7 +1989,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -2060,6 +2086,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -2096,7 +2187,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -2149,7 +2240,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -2216,7 +2307,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/insights/private-link-scope/README.md b/modules/insights/private-link-scope/README.md index 0f6c7ba546..e17d4049a3 100644 --- a/modules/insights/private-link-scope/README.md +++ b/modules/insights/private-link-scope/README.md @@ -305,14 +305,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -340,26 +346,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/insights/private-link-scope/main.bicep b/modules/insights/private-link-scope/main.bicep index a21a5f25c8..608103ca13 100644 --- a/modules/insights/private-link-scope/main.bicep +++ b/modules/insights/private-link-scope/main.bicep @@ -181,16 +181,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/insights/private-link-scope/main.json b/modules/insights/private-link-scope/main.json index 63675293c1..78639b2628 100644 --- a/modules/insights/private-link-scope/main.json +++ b/modules/insights/private-link-scope/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "10939592682328481507" + "templateHash": "17458207121236197041" }, "name": "Azure Monitor Private Link Scopes", "description": "This module deploys an Azure Monitor Private Link Scope.", @@ -160,12 +160,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -181,16 +187,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -573,7 +599,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -670,6 +696,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -706,7 +797,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -759,7 +850,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -826,7 +917,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/key-vault/vault/.test/pe/main.test.bicep b/modules/key-vault/vault/.test/pe/main.test.bicep index bfa8636faa..31787cf5d0 100644 --- a/modules/key-vault/vault/.test/pe/main.test.bicep +++ b/modules/key-vault/vault/.test/pe/main.test.bicep @@ -103,6 +103,24 @@ module testDeployment '../../main.bicep' = { name: 'dep-${namePrefix}-pe-${serviceShort}' service: 'vault' subnetResourceId: nestedDependencies.outputs.subnetResourceId + ipConfigurations: [ + { + name: 'myIPconfig' + properties: { + groupId: 'vault' + memberName: 'default' + privateIPAddress: '10.0.0.10' + } + } + ] + customDnsConfigs: [ + { + fqdn: 'abc.keyvault.com' + ipAddresses: [ + '10.0.0.10' + ] + } + ] tags: { 'hidden-title': 'This is visible in the resource name' Environment: 'Non-Prod' diff --git a/modules/key-vault/vault/README.md b/modules/key-vault/vault/README.md index 5645f22dd2..06c82b8121 100644 --- a/modules/key-vault/vault/README.md +++ b/modules/key-vault/vault/README.md @@ -627,6 +627,24 @@ module vault 'br:bicep/modules/key-vault.vault:1.0.0' = { } privateEndpoints: [ { + customDnsConfigs: [ + { + fqdn: 'abc.keyvault.com' + ipAddresses: [ + '10.0.0.10' + ] + } + ] + ipConfigurations: [ + { + name: 'myIPconfig' + properties: { + groupId: 'vault' + memberName: 'default' + privateIPAddress: '10.0.0.10' + } + } + ] name: 'dep-pe-kvvpe' privateDnsZoneResourceIds: [ '' @@ -711,6 +729,24 @@ module vault 'br:bicep/modules/key-vault.vault:1.0.0' = { "privateEndpoints": { "value": [ { + "customDnsConfigs": [ + { + "fqdn": "abc.keyvault.com", + "ipAddresses": [ + "10.0.0.10" + ] + } + ], + "ipConfigurations": [ + { + "name": "myIPconfig", + "properties": { + "groupId": "vault", + "memberName": "default", + "privateIPAddress": "10.0.0.10" + } + } + ], "name": "dep-pe-kvvpe", "privateDnsZoneResourceIds": [ "" @@ -1047,14 +1083,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -1082,26 +1124,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/key-vault/vault/main.bicep b/modules/key-vault/vault/main.bicep index 178a8067d7..1917a0e8ec 100644 --- a/modules/key-vault/vault/main.bicep +++ b/modules/key-vault/vault/main.bicep @@ -349,16 +349,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/key-vault/vault/main.json b/modules/key-vault/vault/main.json index e36848e797..f074992132 100644 --- a/modules/key-vault/vault/main.json +++ b/modules/key-vault/vault/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "13347839852828986726" + "templateHash": "3329640314478719515" }, "name": "Key Vaults", "description": "This module deploys a Key Vault.", @@ -160,12 +160,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -181,16 +187,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -1483,7 +1509,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -1580,6 +1606,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -1616,7 +1707,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -1669,7 +1760,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -1736,7 +1827,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/machine-learning-services/workspace/README.md b/modules/machine-learning-services/workspace/README.md index 8bb70f240e..a9c2927fb7 100644 --- a/modules/machine-learning-services/workspace/README.md +++ b/modules/machine-learning-services/workspace/README.md @@ -910,26 +910,16 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | | [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | - -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string - -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | | ### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/machine-learning-services/workspace/main.bicep b/modules/machine-learning-services/workspace/main.bicep index 59ba8665c4..61a0422c1d 100644 --- a/modules/machine-learning-services/workspace/main.bicep +++ b/modules/machine-learning-services/workspace/main.bicep @@ -374,9 +374,11 @@ type privateEndpointType = { @sys.description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { name: string - groupId: string - memberName: string - privateIpAddress: string + properties: { + groupId: string + memberName: string + privateIPAddress: string + } }[]? @sys.description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/machine-learning-services/workspace/main.json b/modules/machine-learning-services/workspace/main.json index 237cec9f6b..03013e4d23 100644 --- a/modules/machine-learning-services/workspace/main.json +++ b/modules/machine-learning-services/workspace/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "1113315079349561542" + "templateHash": "8299613323505664553" }, "name": "Machine Learning Services Workspaces", "description": "This module deploys a Machine Learning Services Workspace.", @@ -205,14 +205,19 @@ "name": { "type": "string" }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" - }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string" + }, + "memberName": { + "type": "string" + }, + "privateIPAddress": { + "type": "string" + } + } } } }, @@ -1078,7 +1083,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -1175,6 +1180,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -1211,7 +1281,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -1264,7 +1334,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -1331,7 +1401,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/network/application-gateway/README.md b/modules/network/application-gateway/README.md index f429cc90cb..7e83ee7762 100644 --- a/modules/network/application-gateway/README.md +++ b/modules/network/application-gateway/README.md @@ -1378,14 +1378,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -1413,26 +1419,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/network/application-gateway/main.bicep b/modules/network/application-gateway/main.bicep index 1eb87c7cb8..c789cca2f4 100644 --- a/modules/network/application-gateway/main.bicep +++ b/modules/network/application-gateway/main.bicep @@ -442,16 +442,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/network/application-gateway/main.json b/modules/network/application-gateway/main.json index 6fbae8639c..8c35bd62ee 100644 --- a/modules/network/application-gateway/main.json +++ b/modules/network/application-gateway/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "11405752898435177586" + "templateHash": "7630119371655185477" }, "name": "Network Application Gateways", "description": "This module deploys a Network Application Gateway.", @@ -174,12 +174,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -195,16 +201,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -925,7 +951,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -1022,6 +1048,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -1058,7 +1149,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -1111,7 +1202,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -1178,7 +1269,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/network/private-endpoint/.test/common/main.test.bicep b/modules/network/private-endpoint/.test/common/main.test.bicep index a5f036c296..3728621b84 100644 --- a/modules/network/private-endpoint/.test/common/main.test.bicep +++ b/modules/network/private-endpoint/.test/common/main.test.bicep @@ -84,6 +84,14 @@ module testDeployment '../../main.bicep' = { } } ] + customDnsConfigs: [ + { + fqdn: 'abc.keyvault.com' + ipAddresses: [ + '10.0.0.10' + ] + } + ] customNetworkInterfaceName: '${namePrefix}${serviceShort}001nic' applicationSecurityGroupResourceIds: [ nestedDependencies.outputs.applicationSecurityGroupResourceId diff --git a/modules/network/private-endpoint/README.md b/modules/network/private-endpoint/README.md index c9dfacedfe..56b8d770c6 100644 --- a/modules/network/private-endpoint/README.md +++ b/modules/network/private-endpoint/README.md @@ -56,6 +56,14 @@ module privateEndpoint 'br:bicep/modules/network.private-endpoint:1.0.0' = { applicationSecurityGroupResourceIds: [ '' ] + customDnsConfigs: [ + { + fqdn: 'abc.keyvault.com' + ipAddresses: [ + '10.0.0.10' + ] + } + ] customNetworkInterfaceName: 'npecom001nic' enableDefaultTelemetry: '' ipConfigurations: [ @@ -124,6 +132,16 @@ module privateEndpoint 'br:bicep/modules/network.private-endpoint:1.0.0' = { "" ] }, + "customDnsConfigs": { + "value": [ + { + "fqdn": "abc.keyvault.com", + "ipAddresses": [ + "10.0.0.10" + ] + } + ] + }, "customNetworkInterfaceName": { "value": "npecom001nic" }, @@ -281,6 +299,26 @@ Custom DNS configurations. - Required: No - Type: array + +| Name | Required | Type | Description | +| :-- | :-- | :--| :-- | +| [`fqdn`](#parameter-customdnsconfigsfqdn) | Yes | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-customdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | + +### Parameter: `customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + +- Required: Yes +- Type: string + +### Parameter: `customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + +- Required: Yes +- Type: array + ### Parameter: `customNetworkInterfaceName` The custom name of the network interface attached to the private endpoint. @@ -306,6 +344,26 @@ A list of IP configurations of the private endpoint. This will be used to map to - Required: No - Type: array + +| Name | Required | Type | Description | +| :-- | :-- | :--| :-- | +| [`name`](#parameter-ipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-ipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | + +### Parameter: `ipConfigurations.name` + +Required. The name of the resource that is unique within a resource group. + +- Required: Yes +- Type: string + +### Parameter: `ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + +- Required: Yes +- Type: object + ### Parameter: `location` Location for all Resources. diff --git a/modules/network/private-endpoint/main.bicep b/modules/network/private-endpoint/main.bicep index f5df07a07b..be29744cd6 100644 --- a/modules/network/private-endpoint/main.bicep +++ b/modules/network/private-endpoint/main.bicep @@ -18,7 +18,7 @@ param applicationSecurityGroupResourceIds array? param customNetworkInterfaceName string? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') -param ipConfigurations array? +param ipConfigurations ipConfigurationsType? @description('Required. Subtype(s) of the connection to be created. The allowed values depend on the type serviceResourceId refers to.') param groupIds array @@ -42,7 +42,7 @@ param roleAssignments roleAssignmentType param tags object? @description('Optional. Custom DNS configurations.') -param customDnsConfigs array? +param customDnsConfigs customDnsConfigType? @description('Optional. Manual PrivateLink Service Connections.') param manualPrivateLinkServiceConnections array? @@ -85,7 +85,7 @@ resource privateEndpoint 'Microsoft.Network/privateEndpoints@2023-04-01' = { applicationSecurityGroups: [for applicationSecurityGroupResourceId in (applicationSecurityGroupResourceIds ?? []): { id: applicationSecurityGroupResourceId }] - customDnsConfigs: customDnsConfigs ?? [] + customDnsConfigs: customDnsConfigs customNetworkInterfaceName: customNetworkInterfaceName ?? '' ipConfigurations: ipConfigurations ?? [] manualPrivateLinkServiceConnections: manualPrivateLinkServiceConnections ?? [] @@ -183,3 +183,28 @@ type lockType = { @description('Optional. Specify the type of lock.') kind: ('CanNotDelete' | 'ReadOnly' | 'None')? }? + +type ipConfigurationsType = { + @description('Required. The name of the resource that is unique within a resource group.') + name: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } +}[]? + +type customDnsConfigType = { + @description('Required. Fqdn that resolves to private endpoint ip address.') + fqdn: string + + @description('Required. A list of private ip addresses of the private endpoint.') + ipAddresses: string[] +}[]? diff --git a/modules/network/private-endpoint/main.json b/modules/network/private-endpoint/main.json index a4b1899571..9b9e3e9991 100644 --- a/modules/network/private-endpoint/main.json +++ b/modules/network/private-endpoint/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -103,6 +103,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -139,7 +204,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -192,7 +257,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -259,7 +324,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/purview/account/main.json b/modules/purview/account/main.json index 52549f6f1f..6a680ef25a 100644 --- a/modules/purview/account/main.json +++ b/modules/purview/account/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "1750298366145145282" + "templateHash": "16148547066067055796" }, "name": "Purview Accounts", "description": "This module deploys a Purview Account.", @@ -492,7 +492,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -589,6 +589,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -625,7 +690,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -678,7 +743,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -745,7 +810,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", @@ -1025,7 +1090,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -1122,6 +1187,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -1158,7 +1288,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -1211,7 +1341,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -1278,7 +1408,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", @@ -1558,7 +1688,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -1655,6 +1785,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -1691,7 +1886,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -1744,7 +1939,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -1811,7 +2006,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", @@ -2091,7 +2286,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -2188,6 +2383,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -2224,7 +2484,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -2277,7 +2537,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -2344,7 +2604,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", @@ -2624,7 +2884,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -2721,6 +2981,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -2757,7 +3082,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -2810,7 +3135,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -2877,7 +3202,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/recovery-services/vault/README.md b/modules/recovery-services/vault/README.md index fe12831915..d7783e35d4 100644 --- a/modules/recovery-services/vault/README.md +++ b/modules/recovery-services/vault/README.md @@ -1237,14 +1237,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -1272,26 +1278,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/recovery-services/vault/main.bicep b/modules/recovery-services/vault/main.bicep index 16168ce0ba..4c2854b7be 100644 --- a/modules/recovery-services/vault/main.bicep +++ b/modules/recovery-services/vault/main.bicep @@ -359,16 +359,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/recovery-services/vault/main.json b/modules/recovery-services/vault/main.json index a2d52cb3e7..f4abe4bc08 100644 --- a/modules/recovery-services/vault/main.json +++ b/modules/recovery-services/vault/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "17885378476178029351" + "templateHash": "13132437763223032101" }, "name": "Recovery Services Vaults", "description": "This module deploys a Recovery Services Vault.", @@ -183,12 +183,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -204,16 +210,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -2255,7 +2281,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -2352,6 +2378,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -2388,7 +2479,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -2441,7 +2532,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -2508,7 +2599,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/relay/namespace/README.md b/modules/relay/namespace/README.md index d4cf7ea214..9b74d98e40 100644 --- a/modules/relay/namespace/README.md +++ b/modules/relay/namespace/README.md @@ -726,14 +726,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -761,26 +767,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/relay/namespace/main.bicep b/modules/relay/namespace/main.bicep index 301d7d956d..44102bc7d9 100644 --- a/modules/relay/namespace/main.bicep +++ b/modules/relay/namespace/main.bicep @@ -320,16 +320,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/relay/namespace/main.json b/modules/relay/namespace/main.json index 8fbf5d13f5..5a8cbf13bf 100644 --- a/modules/relay/namespace/main.json +++ b/modules/relay/namespace/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "17919201326260317269" + "templateHash": "16883030415068323871" }, "name": "Relay Namespaces", "description": "This module deploys a Relay Namespace", @@ -160,12 +160,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -181,16 +187,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -1834,7 +1860,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -1931,6 +1957,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -1967,7 +2058,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -2020,7 +2111,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -2087,7 +2178,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/search/search-service/README.md b/modules/search/search-service/README.md index c7adce3abd..418ef12836 100644 --- a/modules/search/search-service/README.md +++ b/modules/search/search-service/README.md @@ -705,14 +705,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -740,26 +746,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/search/search-service/main.bicep b/modules/search/search-service/main.bicep index 004714ae74..4806de883c 100644 --- a/modules/search/search-service/main.bicep +++ b/modules/search/search-service/main.bicep @@ -318,16 +318,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/search/search-service/main.json b/modules/search/search-service/main.json index 895ff66987..9d48759634 100644 --- a/modules/search/search-service/main.json +++ b/modules/search/search-service/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16977539745468752400" + "templateHash": "14644923243501961437" }, "name": "Search Services", "description": "This module deploys a Search Service.", @@ -173,12 +173,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -194,16 +200,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -712,7 +738,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -809,6 +835,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -845,7 +936,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -898,7 +989,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -965,7 +1056,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/service-bus/namespace/README.md b/modules/service-bus/namespace/README.md index 2aaebcf0c7..31dd9b5520 100644 --- a/modules/service-bus/namespace/README.md +++ b/modules/service-bus/namespace/README.md @@ -1133,14 +1133,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -1168,26 +1174,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/service-bus/namespace/main.bicep b/modules/service-bus/namespace/main.bicep index da8dd5b8bf..ad86360a7d 100644 --- a/modules/service-bus/namespace/main.bicep +++ b/modules/service-bus/namespace/main.bicep @@ -459,16 +459,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/service-bus/namespace/main.json b/modules/service-bus/namespace/main.json index eb70f4dfeb..dcf89241ef 100644 --- a/modules/service-bus/namespace/main.json +++ b/modules/service-bus/namespace/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "18136363667820640336" + "templateHash": "17643203096817666176" }, "name": "Service Bus Namespaces", "description": "This module deploys a Service Bus Namespace.", @@ -183,12 +183,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -204,16 +210,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -2486,7 +2512,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -2583,6 +2609,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -2619,7 +2710,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -2672,7 +2763,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -2739,7 +2830,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/signal-r-service/signal-r/README.md b/modules/signal-r-service/signal-r/README.md index aae17d50ed..9f30391a84 100644 --- a/modules/signal-r-service/signal-r/README.md +++ b/modules/signal-r-service/signal-r/README.md @@ -488,14 +488,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -523,26 +529,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/signal-r-service/signal-r/main.bicep b/modules/signal-r-service/signal-r/main.bicep index 23f6aaca41..bb0bf8acab 100644 --- a/modules/signal-r-service/signal-r/main.bicep +++ b/modules/signal-r-service/signal-r/main.bicep @@ -290,16 +290,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/signal-r-service/signal-r/main.json b/modules/signal-r-service/signal-r/main.json index a842ad77f2..f9728a1078 100644 --- a/modules/signal-r-service/signal-r/main.json +++ b/modules/signal-r-service/signal-r/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "1214561796520796276" + "templateHash": "14653714394608163039" }, "name": "SignalR Service SignalR", "description": "This module deploys a SignalR Service SignalR.", @@ -160,12 +160,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -181,16 +187,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -622,7 +648,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -719,6 +745,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -755,7 +846,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -808,7 +899,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -875,7 +966,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/signal-r-service/web-pub-sub/README.md b/modules/signal-r-service/web-pub-sub/README.md index 63e9aa3529..c43ff344a2 100644 --- a/modules/signal-r-service/web-pub-sub/README.md +++ b/modules/signal-r-service/web-pub-sub/README.md @@ -545,14 +545,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -580,26 +586,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/signal-r-service/web-pub-sub/main.bicep b/modules/signal-r-service/web-pub-sub/main.bicep index 93a0247790..2bc0931bec 100644 --- a/modules/signal-r-service/web-pub-sub/main.bicep +++ b/modules/signal-r-service/web-pub-sub/main.bicep @@ -270,16 +270,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/signal-r-service/web-pub-sub/main.json b/modules/signal-r-service/web-pub-sub/main.json index 9decb0dc2e..cef0813fb3 100644 --- a/modules/signal-r-service/web-pub-sub/main.json +++ b/modules/signal-r-service/web-pub-sub/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "12680610655362641595" + "templateHash": "9907983186275243362" }, "name": "SignalR Web PubSub Services", "description": "This module deploys a SignalR Web PubSub Service.", @@ -183,12 +183,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -204,16 +210,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -581,7 +607,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -678,6 +704,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -714,7 +805,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -767,7 +858,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -834,7 +925,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/sql/server/README.md b/modules/sql/server/README.md index 239660e8da..61cb2e2366 100644 --- a/modules/sql/server/README.md +++ b/modules/sql/server/README.md @@ -967,14 +967,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -1002,26 +1008,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/sql/server/main.bicep b/modules/sql/server/main.bicep index fa6063ee6e..512607268e 100644 --- a/modules/sql/server/main.bicep +++ b/modules/sql/server/main.bicep @@ -416,16 +416,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/sql/server/main.json b/modules/sql/server/main.json index 286074e2f6..3e8afbccff 100644 --- a/modules/sql/server/main.json +++ b/modules/sql/server/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "4565599506408192920" + "templateHash": "9390814497684000194" }, "name": "Azure SQL Servers", "description": "This module deploys an Azure SQL Server.", @@ -183,12 +183,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -204,16 +210,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -1672,7 +1698,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -1769,6 +1795,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -1805,7 +1896,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -1858,7 +1949,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -1925,7 +2016,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/storage/storage-account/README.md b/modules/storage/storage-account/README.md index 856962bbaf..5413d63959 100644 --- a/modules/storage/storage-account/README.md +++ b/modules/storage/storage-account/README.md @@ -1600,14 +1600,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -1635,26 +1641,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/storage/storage-account/main.bicep b/modules/storage/storage-account/main.bicep index 8dbf5b6599..0bdcd02d3a 100644 --- a/modules/storage/storage-account/main.bicep +++ b/modules/storage/storage-account/main.bicep @@ -540,16 +540,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/storage/storage-account/main.json b/modules/storage/storage-account/main.json index 3b1c5cfd2e..91ade8e95f 100644 --- a/modules/storage/storage-account/main.json +++ b/modules/storage/storage-account/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "8645368819124015994" + "templateHash": "12032978716554990629" }, "name": "Storage Accounts", "description": "This module deploys a Storage Account.", @@ -182,12 +182,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -203,16 +209,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -934,7 +960,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -1031,6 +1057,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -1067,7 +1158,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -1120,7 +1211,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -1187,7 +1278,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/synapse/private-link-hub/README.md b/modules/synapse/private-link-hub/README.md index fc6c154677..5b93aa7a33 100644 --- a/modules/synapse/private-link-hub/README.md +++ b/modules/synapse/private-link-hub/README.md @@ -313,14 +313,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -348,26 +354,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/synapse/private-link-hub/main.bicep b/modules/synapse/private-link-hub/main.bicep index 703fe86f23..8329852e52 100644 --- a/modules/synapse/private-link-hub/main.bicep +++ b/modules/synapse/private-link-hub/main.bicep @@ -169,16 +169,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/synapse/private-link-hub/main.json b/modules/synapse/private-link-hub/main.json index a69dbc2793..d58383f3f8 100644 --- a/modules/synapse/private-link-hub/main.json +++ b/modules/synapse/private-link-hub/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "684659786245480339" + "templateHash": "9045040601435756592" }, "name": "Azure Synapse Analytics", "description": "This module deploys an Azure Synapse Analytics (Private Link Hub).", @@ -159,12 +159,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -180,16 +186,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -441,7 +467,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -538,6 +564,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -574,7 +665,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -627,7 +718,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -694,7 +785,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/synapse/workspace/README.md b/modules/synapse/workspace/README.md index 57e6c09409..03be99bf42 100644 --- a/modules/synapse/workspace/README.md +++ b/modules/synapse/workspace/README.md @@ -866,14 +866,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -901,26 +907,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/synapse/workspace/main.bicep b/modules/synapse/workspace/main.bicep index 68ff4b3558..5b2eac3596 100644 --- a/modules/synapse/workspace/main.bicep +++ b/modules/synapse/workspace/main.bicep @@ -374,16 +374,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/synapse/workspace/main.json b/modules/synapse/workspace/main.json index 7f66fe19ae..6a13d3b652 100644 --- a/modules/synapse/workspace/main.json +++ b/modules/synapse/workspace/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "1529722820399903843" + "templateHash": "15444302507528482650" }, "name": "Synapse Workspaces", "description": "This module deploys a Synapse Workspace.", @@ -159,12 +159,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -180,16 +186,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -1116,7 +1142,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -1213,6 +1239,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -1249,7 +1340,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -1302,7 +1393,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -1369,7 +1460,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/web/site/README.md b/modules/web/site/README.md index 8cabfb7b27..72196fd504 100644 --- a/modules/web/site/README.md +++ b/modules/web/site/README.md @@ -1260,14 +1260,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -1295,26 +1301,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/web/site/main.bicep b/modules/web/site/main.bicep index 49f99a9ebb..b2ac05d214 100644 --- a/modules/web/site/main.bicep +++ b/modules/web/site/main.bicep @@ -473,16 +473,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/web/site/main.json b/modules/web/site/main.json index 9ccef83733..72f1e89be2 100644 --- a/modules/web/site/main.json +++ b/modules/web/site/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16422154168736567404" + "templateHash": "3962832552855663187" }, "name": "Web/Function Apps", "description": "This module deploys a Web or Function App.", @@ -183,12 +183,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -204,16 +210,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -1179,7 +1205,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "2776575331575111691" + "templateHash": "842322474793993092" }, "name": "Web/Function App Deployment Slots", "description": "This module deploys a Web or Function App Deployment Slot.", @@ -1356,12 +1382,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -1377,16 +1409,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -2499,7 +2551,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -2596,6 +2648,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -2632,7 +2749,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -2685,7 +2802,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -2752,7 +2869,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", @@ -3357,7 +3474,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -3454,6 +3571,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -3490,7 +3672,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -3543,7 +3725,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -3610,7 +3792,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/web/site/slot/README.md b/modules/web/site/slot/README.md index 1769b4cec1..58f9042431 100644 --- a/modules/web/site/slot/README.md +++ b/modules/web/site/slot/README.md @@ -465,14 +465,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -500,26 +506,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/web/site/slot/main.bicep b/modules/web/site/slot/main.bicep index 6909c7040f..e3366e3150 100644 --- a/modules/web/site/slot/main.bicep +++ b/modules/web/site/slot/main.bicep @@ -406,16 +406,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/web/site/slot/main.json b/modules/web/site/slot/main.json index a5e671ef73..8a8395995a 100644 --- a/modules/web/site/slot/main.json +++ b/modules/web/site/slot/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "2776575331575111691" + "templateHash": "842322474793993092" }, "name": "Web/Function App Deployment Slots", "description": "This module deploys a Web or Function App Deployment Slot.", @@ -183,12 +183,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -204,16 +210,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -1326,7 +1352,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -1423,6 +1449,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -1459,7 +1550,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -1512,7 +1603,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -1579,7 +1670,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]", diff --git a/modules/web/static-site/README.md b/modules/web/static-site/README.md index c499a7a46a..ad975c5f2f 100644 --- a/modules/web/static-site/README.md +++ b/modules/web/static-site/README.md @@ -468,14 +468,20 @@ Optional. Custom DNS configurations. | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | | -| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | | +| [`fqdn`](#parameter-privateendpointscustomdnsconfigsfqdn) | No | string | Required. Fqdn that resolves to private endpoint ip address. | +| [`ipAddresses`](#parameter-privateendpointscustomdnsconfigsipaddresses) | Yes | array | Required. A list of private ip addresses of the private endpoint. | ### Parameter: `privateEndpoints.customDnsConfigs.fqdn` + +Required. Fqdn that resolves to private endpoint ip address. + - Required: No - Type: string ### Parameter: `privateEndpoints.customDnsConfigs.ipAddresses` + +Required. A list of private ip addresses of the private endpoint. + - Required: Yes - Type: array @@ -503,26 +509,22 @@ Optional. A list of IP configurations of the private endpoint. This will be used | Name | Required | Type | Description | | :-- | :-- | :--| :-- | -| [`groupId`](#parameter-privateendpointsipconfigurationsgroupid) | Yes | string | | -| [`memberName`](#parameter-privateendpointsipconfigurationsmembername) | Yes | string | | -| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | | -| [`privateIpAddress`](#parameter-privateendpointsipconfigurationsprivateipaddress) | Yes | string | | +| [`name`](#parameter-privateendpointsipconfigurationsname) | Yes | string | Required. The name of the resource that is unique within a resource group. | +| [`properties`](#parameter-privateendpointsipconfigurationsproperties) | Yes | object | Required. Properties of private endpoint IP configurations. | -### Parameter: `privateEndpoints.ipConfigurations.groupId` -- Required: Yes -- Type: string +### Parameter: `privateEndpoints.ipConfigurations.name` -### Parameter: `privateEndpoints.ipConfigurations.memberName` -- Required: Yes -- Type: string +Required. The name of the resource that is unique within a resource group. -### Parameter: `privateEndpoints.ipConfigurations.name` - Required: Yes - Type: string -### Parameter: `privateEndpoints.ipConfigurations.privateIpAddress` +### Parameter: `privateEndpoints.ipConfigurations.properties` + +Required. Properties of private endpoint IP configurations. + - Required: Yes -- Type: string +- Type: object ### Parameter: `privateEndpoints.location` diff --git a/modules/web/static-site/main.bicep b/modules/web/static-site/main.bicep index 160cdf3082..990e85fc4a 100644 --- a/modules/web/static-site/main.bicep +++ b/modules/web/static-site/main.bicep @@ -307,16 +307,29 @@ type privateEndpointType = { @description('Optional. Custom DNS configurations.') customDnsConfigs: { + @description('Required. Fqdn that resolves to private endpoint ip address.') fqdn: string? + + @description('Required. A list of private ip addresses of the private endpoint.') ipAddresses: string[] }[]? @description('Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints.') ipConfigurations: { + @description('Required. The name of the resource that is unique within a resource group.') name: string - groupId: string - memberName: string - privateIpAddress: string + + @description('Required. Properties of private endpoint IP configurations.') + properties: { + @description('Required. The ID of a group obtained from the remote resource that this private endpoint should connect to.') + groupId: string + + @description('Required. The member name of a group obtained from the remote resource that this private endpoint should connect to.') + memberName: string + + @description('Required. A private ip address obtained from the private endpoint\'s subnet.') + privateIPAddress: string + } }[]? @description('Optional. Application security groups in which the private endpoint IP configuration is included.') diff --git a/modules/web/static-site/main.json b/modules/web/static-site/main.json index b56be52ddb..e42e784d34 100644 --- a/modules/web/static-site/main.json +++ b/modules/web/static-site/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "17501728288699973579" + "templateHash": "2662580552466474915" }, "name": "Static Web Apps", "description": "This module deploys a Static Web App.", @@ -183,12 +183,18 @@ "properties": { "fqdn": { "type": "string", - "nullable": true + "nullable": true, + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } }, "ipAddresses": { "type": "array", "items": { "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." } } } @@ -204,16 +210,36 @@ "type": "object", "properties": { "name": { - "type": "string" - }, - "groupId": { - "type": "string" - }, - "memberName": { - "type": "string" + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } }, - "privateIpAddress": { - "type": "string" + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } } } }, @@ -1114,7 +1140,7 @@ "_generator": { "name": "bicep", "version": "0.22.6.54827", - "templateHash": "16178508232344722616" + "templateHash": "12078057657290521609" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -1211,6 +1237,71 @@ } }, "nullable": true + }, + "ipConfigurationsType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "metadata": { + "description": "Required. The name of the resource that is unique within a resource group." + } + }, + "properties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "metadata": { + "description": "Required. The ID of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "memberName": { + "type": "string", + "metadata": { + "description": "Required. The member name of a group obtained from the remote resource that this private endpoint should connect to." + } + }, + "privateIPAddress": { + "type": "string", + "metadata": { + "description": "Required. A private ip address obtained from the private endpoint's subnet." + } + } + }, + "metadata": { + "description": "Required. Properties of private endpoint IP configurations." + } + } + } + }, + "nullable": true + }, + "customDnsConfigType": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fqdn": { + "type": "string", + "metadata": { + "description": "Required. Fqdn that resolves to private endpoint ip address." + } + }, + "ipAddresses": { + "type": "array", + "items": { + "type": "string" + }, + "metadata": { + "description": "Required. A list of private ip addresses of the private endpoint." + } + } + } + }, + "nullable": true } }, "parameters": { @@ -1247,7 +1338,7 @@ } }, "ipConfigurations": { - "type": "array", + "$ref": "#/definitions/ipConfigurationsType", "nullable": true, "metadata": { "description": "Optional. A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints." @@ -1300,7 +1391,7 @@ } }, "customDnsConfigs": { - "type": "array", + "$ref": "#/definitions/customDnsConfigType", "nullable": true, "metadata": { "description": "Optional. Custom DNS configurations." @@ -1367,7 +1458,7 @@ } } ], - "customDnsConfigs": "[coalesce(parameters('customDnsConfigs'), createArray())]", + "customDnsConfigs": "[parameters('customDnsConfigs')]", "customNetworkInterfaceName": "[coalesce(parameters('customNetworkInterfaceName'), '')]", "ipConfigurations": "[coalesce(parameters('ipConfigurations'), createArray())]", "manualPrivateLinkServiceConnections": "[coalesce(parameters('manualPrivateLinkServiceConnections'), createArray())]",