import * as network from '@pulumi/azure-native/network'; import * as pulumi from '@pulumi/pulumi'; import { Input, Output } from '@pulumi/pulumi'; import { BasicResourceArgs, LogInfo, NamingType, ResourceInfo, ResourceInfoWithInstance } from '../types'; import { FirewallPolicyProps } from './types'; export interface FwOutboundConfig { subnetId: pulumi.Input; /** The IDs of public Ip Address.*/ publicIpAddressId?: pulumi.Input; } export type FirewallSkus = { name: network.AzureFirewallSkuName; tier: network.AzureFirewallSkuTier; }; export interface FirewallProps extends BasicResourceArgs { /** The public outbound IP address can be ignored this property if we want to enable the Force Tunneling mode */ outbound: Array; /** This must be provided if sku is Basic or want to enable the Force Tunneling mode */ management?: Pick; autoScale?: { minCapacity: number; maxCapacity: number; }; snat?: { privateRanges?: Input; autoLearnPrivateRanges?: boolean; routeServerId?: Input; }; policy: FirewallPolicyProps; enableDnsProxy?: boolean; sku?: FirewallSkus; /**This is required in order to search firewall logs*/ logInfo?: LogInfo; } export type FirewallResult = ResourceInfoWithInstance & { policy: network.FirewallPolicy | undefined; }; /**Create Firewall*/ export declare const create: ({ name, group, snat, policy, outbound, management, logInfo, enableDnsProxy, autoScale, sku, dependsOn, ignoreChanges, }: FirewallProps) => FirewallResult; type FirewallIPOutputType = { publicIPAddress?: string; privateIPAddress: string; }; export declare const getFirewallIPAddresses: (info: ResourceInfo) => Output; export declare const getFirewallInfoWithIPAddresses: (groupName: NamingType) => ResourceInfo & { ipAddresses: Output; }; export {};