Resources/Schema/New-CmAzIaasFirewalls.Schema.json
{
"$schema": "http://json-schema.org/draft-07/schema", "$id": "New-CmAzIaasFirewalls", "type": "object", "title": "New-CmAzIaasFirewalls", "description": "Settings Root.", "properties": { "component": { "$id": "#/component", "type": ["string", "null"], "title": "Component", "description": "Value to determine what cmdlet should be dynamically loaded for these settings." }, "service": { "$id": "#/service", "type": ["object", "null"], "title": "Service", "description": "Contains dependency and publish details for service location.", "properties": { "dependencies": { "$id": "#/service/dependencies", "type": ["object", "null"], "title": "Dependencies", "description": "Contains dependency details for service location.", "properties": { "resourceGroup": { "$id": "#/service/dependencies/resourceGroup", "type": ["string", "null"], "title": "ResourceGroup", "description": "Dependency value to fetch existing resource type." }, "vnet": { "$id": "#/service/dependencies/vnet", "type": ["string", "null"], "title": "Vnet", "description": "Global default dependency value to fetch existing resource type." } }, "additionalProperties": false }, "publish": { "$id": "#/service/publish", "type": ["object", "null"], "title": "Publish", "description": "Contains publish details for service location.", "properties": { "firewall": { "$id": "#/service/publish/firewall", "type": ["string", "null"], "title": "Firewall", "descrip,tion": "Global default value to publish on deployed resource type." }, "firewallPolicy": { "$id": "#/service/publish/firewallPolicy", "type": ["string", "null"], "title": "FirewallPolicy", "description": "Global default value to publish on deployed resource type." } }, "additionalProperties": false } }, "additionalProperties": false }, "firewalls": { "$id": "#/firewalls", "type": ["array", "null"], "title": "Firewalls", "description": "Container for Firewalls configuration details.", "minItems": 1, "items": { "$id": "#/firewalls/items", "allOf": [ { "$id": "#/firewalls/items/allOf", "type": "object", "required": [ "name", "sku" ], "properties": { "name": { "$id": "#/firewalls/items/allOf/name", "type": "string", "title": "Name", "description": "Becomes part of firewall name." }, "zones": { "$id": "#/firewalls/items/allOf/zones", "type": ["array", "null"], "title": "zones", "description": "A list of availability zones." }, "firewallSubnetPrefix": { "$id": "#/firewalls/items/allOf/firewallSubnetPrefix", "type": ["string", "null"], "title": "FirewallSubnetPrefix", "description": "Used to populate AzureFirewallSubnet cidr value." }, "sku": { "$id": "#/firewalls/items/allOf/sku", "type": "string", "title": "sku", "enum": ["Standard", "Premium"], "description": "Firewall Sku." }, "service": { "$id": "#/firewalls/items/allOf/service", "type": ["object", "null"], "title": "Service", "description": "Contains dependency and publish details for service location.", "properties": { "dependencies": { "$id": "#/firewalls/items/allOf/service/dependencies", "type": ["object", "null"], "title": "Dependencies", "description": "Contains dependency details for service location.", "properties": { "vnet": { "$id": "#/firewalls/items/allOf/service/dependencies/vnet", "type": ["string", "null"], "title": "Vnet", "description": "Local overriding dependency value to fetch existing resource type." }, "firewallPolicy": { "$id": "#/firewalls/items/allOf/service/dependencies/firewallPolicy", "type": ["string", "null"], "title": "FirewallPolicy", "description": "Local overriding dependency value to fetch existing resource type." } }, "additionalProperties": false }, "publish": { "$id": "#/firewalls/items/allOf/service/publish", "type": ["object", "null"], "title": "Publish", "description": "Contains publish details for service location.", "properties": { "firewall": { "$id": "#/firewalls/items/allOf/service/publish/firewall", "type": ["string", "null"], "title": "Firewall", "description": "Local overriding value to publish on deployed existing resource type." } }, "additionalProperties": false } }, "additionalProperties": false } }, "additionalProperties": false } ] } }, "firewallPolicies": { "$id": "#/firewallPolicies", "type": ["array", "null"], "title": "FirewallPolicies", "description": "Container for configuration details of Firewall Policies.", "minItems": 1, "items": { "$id": "#/firewallPolicies/items", "allOf": [ { "$id": "#/firewallPolicies/items/allOf", "type": "object", "required": [ "name", "location", "sku" ], "properties": { "name": { "$id": "#/firewallPolicies/items/allOf/name", "type": "string", "title": "Name", "description": "Becomes part of private endpoint name." }, "location": { "$id": "#/firewallPolicies/items/allOf/location", "type": ["string", "null"], "title": "Location", "description": "Location to deploy resource." }, "sku": { "$id": "#/firewallPolicies/items/allOf/sku", "type": "string", "title": "sku", "enum": ["Standard", "Premium"], "description": "Firewall Sku" }, "ruleCollectionGroupsSettingFiles": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroupsSettingFiles", "type": ["array", "null"], "title": "RuleCollectionGroupsSettingFiles", "description": "Path to files containing firewall rules." }, "ruleCollectionGroups": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups", "type": ["array", "null"], "title": "ruleCollectionGroups", "description": "Container for configuration details of rules to added to Firewall Policy.", "minItems": 1, "items": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items", "allOf": [ { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf", "type": "object", "required": [ "name", "priority" ], "properties": { "name": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/name", "type": "string", "title": "Name", "description": "Name of rule collection group." }, "priority": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/priority", "type": "number", "title": "priority", "minimum": 100, "maximum": 1000, "description": "Priority of rule collection." }, "ruleCollections": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections", "type": ["array", "null"], "title": "ruleCollections", "description": "Collection of firewall rules.", "items": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items", "allOf": [ { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/", "type": "object", "required": [ "priority", "rules", "name", "type" ], "properties": { "name": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/name", "type": "string", "title": "name", "description": "Name of rule collection." }, "type": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/type", "type": "string", "title": "type", "enum": ["dnat", "network", "application"], "description": "Type of rule collection." }, "priority": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/priority", "type": "integer", "title": "priority", "description": "Priority of rule collection." }, "rules": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules", "type": "array", "title": "rules", "additionalItems": false, "items": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items", "oneOf": [ { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/dnat/", "type": ["object", "null"], "title": "Dnat", "required": [ "destinationPorts", "ipProtocols", "name", "sourceAddresses", "translatedAddress", "destinationAddresses", "translatedPort" ], "properties": { "sourceIpGroups": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/dnat/sourceIpGroups", "type": ["array", "null"], "title": "sourceIpGroups", "description": "Group of source Ips." }, "destinationPorts": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/dnat/destinationPorts", "type": "array", "title": "destinationPorts", "description": "Destination ports." }, "ipProtocols": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/dnat/ipProtocols", "type": "array", "title": "ipProtocols", "description": "Ip protocol to be TCP or UDP." }, "name": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/dnat/name", "type": "string", "title": "name", "description": "Name of DNAT rule." }, "sourceAddresses": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/dnat/sourceAddresses", "type": "array", "title": "sourceAddresses", "description": "Source Ip addresses." }, "translatedAddress": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/dnat/translatedAddress", "type": "string", "title": "translatedAddress", "description": "Translated Ip addresses." }, "destinationAddresses": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/dnat/destinationAddresses", "type": "array", "title": "destinationAddresses", "description": "Destination Ip addresses." }, "translatedPort": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/dnat/translatedPort", "type": "integer", "title": "translatedPort", "description": "Translated ports." } }, "additionalProperties": false }, { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/network/", "type": "object", "title": "network", "required": [ "destinationPorts", "ipProtocols", "name", "sourceAddresses", "destinationAddresses" ], "properties": { "sourceIpGroups": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/network/sourceIpGroups", "type": ["array", "null"], "title": "sourceIpGroups", "description": "Group of source Ips." }, "destinationPorts": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/network/destinationPorts", "type": "array", "title": "destinationPorts", "description": "Destination ports." }, "ipProtocols": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/network/ipProtocols", "type": "array", "title": "ipProtocols", "description": "Ip protocol to be TCP or UDP." }, "name": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/network/name", "type": "string", "title": "name", "description": "Name of network rule." }, "sourceAddresses": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/network/sourceAddresses", "type": "array", "title": "sourceAddresses", "description": "Source Ip addresses." }, "destinationIpGroups": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/network/destinationIpGroups", "type": ["array", "null"], "title": "destinationIpGroups", "description": "Group of destination Ips." }, "destinationAddresses": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/network/destinationAddresses", "type": "array", "title": "destinationAddresses", "description": "Destination Ip addresses." }, "destinationFqdns": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/network/destinationFqdns", "type": ["array", "null"], "title": "destinationFqdns", "description": "Destination fully qualified domain names." } }, "additionalProperties": false }, { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/application", "type": "object", "title": "Application rules", "description": "Contains application firewall rules.", "required": [ "name", "protocols", "targetFqdns", "terminateTLS", "sourceAddresses" ], "properties": { "name": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/application/name", "type": "string", "title": "name", "description": "Name of application firewall rule." }, "protocols": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/application/protocols", "type": "array", "title": "protocols", "description": "Defines protocol.", "items": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/application/protocols/items", "allOf": [ { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/application/protocols/items/allOf", "type": "object", "required": [ "protocolType", "port" ], "properties": { "protocolType": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/application/protocols/items/allOf/protocolType", "type": "string", "title": "protocolType", "description": "Protocol Type." }, "port": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/application/protocols/items/allOf/port", "type": "integer", "title": "port", "description": "Application listen port." } }, "additionalProperties": true } ] } }, "targetFqdns": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/application/targetFqdns", "type": "array", "title": "targetFqdns", "description": "Target fully qualified domain name." }, "terminateTLS": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/application/terminateTLS", "type": "boolean", "title": "terminateTLS", "description": "Enforce TLS." }, "sourceAddresses": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/application/sourceAddresses", "type": "array", "title": "sourceAddresses", "description": "Source Ip addresses." }, "destinationAddresses": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/application/destinationAddresses", "type": ["array", "null"], "title": "destinationAddresses", "description": "Destination Ip addresses." }, "sourceIpGroups": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/application/sourceIpGroups", "type": ["array", "null"], "title": "sourceIpGroups", "description": "Group of source Ip addresses." }, "targetUrls": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/application/targetUrls", "type": ["array", "null"], "title": "targetUrls", "description": "Target URLs." }, "fqdnTags": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/application/fqdnTags", "type": ["array", "null"], "title": "fqdnTags", "description": "Fully qualified domain name tags." }, "webCategories": { "$id": "#/firewallPolicies/items/allOf/ruleCollectionGroups/items/allOf/ruleCollections/items/allOf/rules/items/oneOf/application/webCategories", "type": ["array", "null"], "title": "webCategories", "description": "Web categories." } }, "additionalProperties": true } ] } } }, "additionalProperties": false } ] } } }, "additionalProperties": false } ] } }, "threatIntelMode": { "$id": "#/firewallPolicies/items/allOf/threatIntelMode", "type": ["string", "null"], "title": "ThreatIntelMode", "enum": ["Alert", "Deny", "Off", null], "description": "Operation mode for Threat Intelligence." }, "threatIntelWhitelist": { "$id": "#/firewallPolicies/items/allOf/threatIntelWhitelist", "type": ["object", "null"], "title": "threatIntelWhitelist", "properties": { "ipAddresses": { "$id": "#/firewallPolicies/items/allOf/threatIntelWhitelist/ipAddresses", "type": ["array", "null"], "title": "IpAddresses", "description": "Contains white listed Ip addresses." }, "fqdns": { "$id": "#/firewallPolicies/items/allOf/threatIntelWhitelist/fqdns", "type": ["array", "null"], "title": "Fqdns", "description": "Contains white listed Fqdns." } }, "additionalProperties": false }, "dnsSettings": { "$id": "#/firewallPolicies/items/allOf/dnsSettings", "type": ["object", "null"], "title": "dnsSettings", "description": "Contains dependency and publish details for service location.", "properties": { "servers": { "$id": "#/firewallPolicies/items/allOf/dnsSettings/servers", "type": ["array", "null"], "title": "Servers", "description": "Contains list of DNS servers." }, "enableProxy": { "$id": "#/firewallPolicies/items/allOf/dnsSettings/enableProxy", "type": ["boolean", "null"], "title": "EnableProxy", "description": "Configurs Azure Firewall to act as a DNS proxy." } }, "additionalProperties": false }, "service": { "$id": "#/firewallPolicies/items/allOf/service", "type": ["object", "null"], "title": "Service", "description": "Contains dependency and publish details for service location.", "properties": { "dependencies": { "$id": "#/firewallPolicies/items/allOf/service/dependencies", "type": ["object", "null"], "title": "Dependencies", "description": "Contains dependency details for service location.", "properties": { "vnet": { "$id": "#/firewallPolicies/items/allOf/service/dependencies/vnet", "type": ["string", "null"], "title": "Vnet", "description": "Local overriding dependency value to fetch existing resource type." }, "resourceGroup": { "$id": "#/firewallPolicies/items/allOf/service/dependencies/resourceGroup", "type": ["string", "null"], "title": "ResourceGroup", "description": "Local overriding dependency value to fetch existing resource type." }, "baseFirewallPolicy": { "$id": "#/firewallPolicies/items/allOf/service/dependencies/baseFirewallPolicy", "type": ["string", "null"], "title": "BaseFirewallPolicy", "description": "Local overriding dependency value to fetch existing resource type." } }, "additionalProperties": false }, "publish": { "$id": "#/firewallPolicies/items/allOf/service/publish", "type": ["object", "null"], "title": "Publish", "description": "Contains publish details for service location.", "properties": { "firewallPolicy": { "$id": "#/firewallPolicies/items/allOf/service/publish/firewallPolicy", "type": ["string", "null"], "title": "FirewallPolicy", "description": "Local overriding value to publish on deployed existing resource type." } }, "additionalProperties": false } }, "additionalProperties": false } }, "additionalProperties": false } ] } } }, "additionalProperties": false } |