diff --git a/avm/res/network/azure-firewall/README.md b/avm/res/network/azure-firewall/README.md index c2819fd1cc..f4ac900c4b 100644 --- a/avm/res/network/azure-firewall/README.md +++ b/avm/res/network/azure-firewall/README.md @@ -1858,7 +1858,48 @@ IP addresses associated with AzureFirewall. Required if `virtualHubId` is suppli - Required: No - Type: object -- Default: `{}` + +**Optional parameters** + +| Parameter | Type | Description | +| :-- | :-- | :-- | +| [`privateIPAddress`](#parameter-hubipaddressesprivateipaddress) | string | Private IP Address associated with AzureFirewall. | +| [`publicIPs`](#parameter-hubipaddressespublicips) | object | List of public IP addresses associated with AzureFirewall. | + +### Parameter: `hubIPAddresses.privateIPAddress` + +Private IP Address associated with AzureFirewall. + +- Required: No +- Type: string + +### Parameter: `hubIPAddresses.publicIPs` + +List of public IP addresses associated with AzureFirewall. + +- Required: No +- Type: object + +**Optional parameters** + +| Parameter | Type | Description | +| :-- | :-- | :-- | +| [`addresses`](#parameter-hubipaddressespublicipsaddresses) | array | The list of Public IP addresses associated with AzureFirewall or IP addresses to be retained. | +| [`count`](#parameter-hubipaddressespublicipscount) | int | Public IP address count. | + +### Parameter: `hubIPAddresses.publicIPs.addresses` + +The list of Public IP addresses associated with AzureFirewall or IP addresses to be retained. + +- Required: No +- Type: array + +### Parameter: `hubIPAddresses.publicIPs.count` + +Public IP address count. + +- Required: No +- Type: int ### Parameter: `virtualHubId` diff --git a/avm/res/network/azure-firewall/main.bicep b/avm/res/network/azure-firewall/main.bicep index 39fd9b8fc0..674a2e8ca1 100644 --- a/avm/res/network/azure-firewall/main.bicep +++ b/avm/res/network/azure-firewall/main.bicep @@ -46,7 +46,7 @@ param natRuleCollections natRuleCollectionType param firewallPolicyId string = '' @description('Conditional. IP addresses associated with AzureFirewall. Required if `virtualHubId` is supplied.') -param hubIPAddresses object = {} +param hubIPAddresses hubIPAddressesType? @description('Conditional. The virtualHub resource ID to which the firewall belongs. Required if `virtualNetworkId` is empty.') param virtualHubId string = '' @@ -621,3 +621,20 @@ type networkRuleCollectionType = { }[] } }[]? + +type hubIPAddressesType = { + @description('Optional. Private IP Address associated with AzureFirewall.') + privateIPAddress: string? + @description('Optional. List of public IP addresses associated with AzureFirewall.') + publicIPs: { + @description('Optional. The list of Public IP addresses associated with AzureFirewall or IP addresses to be retained.') + addresses: [ + { + @description('Optional. Public IP.') + address: string? + } + ]? + @description('Optional. Public IP address count.') + count: int? + }? +} diff --git a/avm/res/network/azure-firewall/main.json b/avm/res/network/azure-firewall/main.json index 43d731614e..225e91d3f5 100644 --- a/avm/res/network/azure-firewall/main.json +++ b/avm/res/network/azure-firewall/main.json @@ -5,8 +5,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.30.3.12046", - "templateHash": "7724811109136350489" + "version": "0.32.4.45862", + "templateHash": "212775860076150756" }, "name": "Azure Firewalls", "description": "This module deploys an Azure Firewall.", @@ -664,6 +664,56 @@ } }, "nullable": true + }, + "hubIPAddressesType": { + "type": "object", + "properties": { + "privateIPAddress": { + "type": "string", + "nullable": true, + "metadata": { + "description": "Optional. Private IP Address associated with AzureFirewall." + } + }, + "publicIPs": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "prefixItems": [ + { + "type": "object", + "properties": { + "address": { + "type": "string", + "nullable": true, + "metadata": { + "description": "Optional. Public IP." + } + } + } + } + ], + "items": false, + "nullable": true, + "metadata": { + "description": "Optional. The list of Public IP addresses associated with AzureFirewall or IP addresses to be retained." + } + }, + "count": { + "type": "int", + "nullable": true, + "metadata": { + "description": "Optional. Public IP address count." + } + } + }, + "nullable": true, + "metadata": { + "description": "Optional. List of public IP addresses associated with AzureFirewall." + } + } + } } }, "parameters": { @@ -755,8 +805,8 @@ } }, "hubIPAddresses": { - "type": "object", - "defaultValue": {}, + "$ref": "#/definitions/hubIPAddressesType", + "nullable": true, "metadata": { "description": "Conditional. IP addresses associated with AzureFirewall. Required if `virtualHubId` is supplied." }