1. Packages
  2. Panos Provider
  3. API Docs
  4. BgpFilteringRoutingProfile
panos 2.0.7 published on Thursday, Nov 27, 2025 by paloaltonetworks
panos logo
panos 2.0.7 published on Thursday, Nov 27, 2025 by paloaltonetworks

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as panos from "@pulumi/panos";
    
    // Create a template for BGP filtering profiles
    const bgpTemplate = new panos.Template("bgp_template", {
        location: {
            panorama: {},
        },
        name: "bgp-filtering-template",
    });
    // Example 1: Basic IPv4 Unicast Filtering with Prefix Lists and Route Maps
    // This example demonstrates inbound/outbound network filtering using prefix lists
    // and route maps for fine-grained control over advertised and received routes.
    // Create prefix lists for network filtering
    const ipv4InboundPrefix = new panos.FiltersPrefixListRoutingProfile("ipv4_inbound_prefix", {
        location: {
            template: {
                name: bgpTemplate.name,
            },
        },
        name: "ipv4-inbound-prefix-list",
        description: "Prefix list for incoming IPv4 routes",
        type: {
            ipv4: {
                ipv4Entries: [
                    {
                        name: "10",
                        action: "permit",
                        prefix: {
                            entry: {
                                network: "10.0.0.0/8",
                            },
                        },
                    },
                    {
                        name: "20",
                        action: "deny",
                        prefix: {
                            entry: {
                                network: "192.168.0.0/16",
                            },
                        },
                    },
                ],
            },
        },
    });
    const ipv4OutboundPrefix = new panos.FiltersPrefixListRoutingProfile("ipv4_outbound_prefix", {
        location: {
            template: {
                name: bgpTemplate.name,
            },
        },
        name: "ipv4-outbound-prefix-list",
        description: "Prefix list for outgoing IPv4 routes",
        type: {
            ipv4: {
                ipv4Entries: [{
                    name: "10",
                    action: "permit",
                    prefix: {
                        entry: {
                            network: "172.16.0.0/12",
                            greaterThanOrEqual: 16,
                            lessThanOrEqual: 24,
                        },
                    },
                }],
            },
        },
    });
    // Create route maps for advanced filtering
    const inboundRouteMap = new panos.FiltersBgpRouteMapRoutingProfile("inbound_route_map", {
        location: {
            template: {
                name: bgpTemplate.name,
            },
        },
        name: "inbound-route-map",
        description: "Route map for incoming routes",
        routeMaps: [{
            name: "10",
            action: "permit",
            description: "Permit routes from preferred peers",
        }],
    });
    const outboundRouteMap = new panos.FiltersBgpRouteMapRoutingProfile("outbound_route_map", {
        location: {
            template: {
                name: bgpTemplate.name,
            },
        },
        name: "outbound-route-map",
        description: "Route map for outgoing routes",
        routeMaps: [{
            name: "10",
            action: "permit",
            description: "Advertise local routes",
        }],
    });
    // BGP Filtering Profile with network filters and route maps
    const ipv4UnicastBasic = new panos.BgpFilteringRoutingProfile("ipv4_unicast_basic", {
        location: {
            template: {
                name: bgpTemplate.name,
            },
        },
        name: "ipv4-unicast-basic-filtering",
        description: "Basic IPv4 unicast filtering with prefix lists and route maps",
        ipv4: {
            unicast: {
                inboundNetworkFilters: {
                    prefixList: ipv4InboundPrefix.name,
                },
                outboundNetworkFilters: {
                    prefixList: ipv4OutboundPrefix.name,
                },
                routeMaps: {
                    inbound: inboundRouteMap.name,
                    outbound: outboundRouteMap.name,
                },
            },
        },
    });
    // Example 2: IPv4 with Conditional Advertisement and AS-Path Filtering
    // This example shows conditional route advertisement based on route existence
    // and AS-path filtering for controlling routes based on AS number patterns.
    // Create route maps for conditional advertisement
    const advertiseMap = new panos.FiltersBgpRouteMapRoutingProfile("advertise_map", {
        location: {
            template: {
                name: bgpTemplate.name,
            },
        },
        name: "advertise-map",
        description: "Routes to conditionally advertise",
        routeMaps: [{
            name: "10",
            action: "permit",
        }],
    });
    const existMap = new panos.FiltersBgpRouteMapRoutingProfile("exist_map", {
        location: {
            template: {
                name: bgpTemplate.name,
            },
        },
        name: "exist-map",
        description: "Routes that must exist for conditional advertisement",
        routeMaps: [{
            name: "10",
            action: "permit",
        }],
    });
    // Create AS-path access lists for filtering
    const asPathFilter = new panos.FiltersAsPathAccessListRoutingProfile("as_path_filter", {
        location: {
            template: {
                name: bgpTemplate.name,
            },
        },
        name: "as-path-filter",
        description: "Filter routes based on AS path",
        aspathEntries: [
            {
                name: "1",
                action: "permit",
                aspathRegex: "^65000_",
            },
            {
                name: "2",
                action: "deny",
                aspathRegex: "_65001$",
            },
        ],
    });
    // Create route map for unsuppressing routes
    const unsuppressMap = new panos.FiltersBgpRouteMapRoutingProfile("unsuppress_map", {
        location: {
            template: {
                name: bgpTemplate.name,
            },
        },
        name: "unsuppress-map",
        description: "Routes to unsuppress",
        routeMaps: [{
            name: "10",
            action: "permit",
        }],
    });
    // BGP Filtering Profile with conditional advertisement
    const ipv4ConditionalAdv = new panos.BgpFilteringRoutingProfile("ipv4_conditional_adv", {
        location: {
            template: {
                name: bgpTemplate.name,
            },
        },
        name: "ipv4-conditional-advertisement",
        description: "IPv4 filtering with conditional advertisement and AS-path filtering",
        ipv4: {
            unicast: {
                conditionalAdvertisement: {
                    exist: {
                        advertiseMap: advertiseMap.name,
                        existMap: existMap.name,
                    },
                },
                filterList: {
                    inbound: asPathFilter.name,
                },
                unsuppressMap: unsuppressMap.name,
            },
        },
    });
    // Example 3: IPv6 Unicast Filtering with Access Lists
    // This example demonstrates IPv6 filtering using access lists (distribute lists)
    // instead of prefix lists for network-based filtering.
    // Create IPv6 access lists
    const ipv6InboundAcl = new panos.FiltersAccessListRoutingProfile("ipv6_inbound_acl", {
        location: {
            template: {
                name: bgpTemplate.name,
            },
        },
        name: "ipv6-inbound-acl",
        description: "Access list for incoming IPv6 routes",
        type: {
            ipv6: {
                ipv6Entries: [{
                    name: "10",
                    action: "permit",
                }],
            },
        },
    });
    const ipv6OutboundAcl = new panos.FiltersAccessListRoutingProfile("ipv6_outbound_acl", {
        location: {
            template: {
                name: bgpTemplate.name,
            },
        },
        name: "ipv6-outbound-acl",
        description: "Access list for outgoing IPv6 routes",
        type: {
            ipv6: {
                ipv6Entries: [
                    {
                        name: "10",
                        action: "permit",
                    },
                    {
                        name: "20",
                        action: "deny",
                    },
                ],
            },
        },
    });
    // Create AS-path access list for IPv6 (AS-path filters work for both IPv4 and IPv6)
    const ipv6AsPath = new panos.FiltersAsPathAccessListRoutingProfile("ipv6_as_path", {
        location: {
            template: {
                name: bgpTemplate.name,
            },
        },
        name: "ipv6-as-path-filter",
        description: "AS-path filter for IPv6 routes",
        aspathEntries: [{
            name: "1",
            action: "permit",
            aspathRegex: "^64[0-9]{3}_",
        }],
    });
    // BGP Filtering Profile for IPv6
    const ipv6UnicastFiltering = new panos.BgpFilteringRoutingProfile("ipv6_unicast_filtering", {
        location: {
            template: {
                name: bgpTemplate.name,
            },
        },
        name: "ipv6-unicast-filtering",
        description: "IPv6 unicast filtering with access lists and AS-path filtering",
        ipv6: {
            unicast: {
                inboundNetworkFilters: {
                    distributeList: ipv6InboundAcl.name,
                },
                outboundNetworkFilters: {
                    distributeList: ipv6OutboundAcl.name,
                },
                filterList: {
                    inbound: ipv6AsPath.name,
                    outbound: ipv6AsPath.name,
                },
            },
        },
    });
    
    import pulumi
    import pulumi_panos as panos
    
    # Create a template for BGP filtering profiles
    bgp_template = panos.Template("bgp_template",
        location={
            "panorama": {},
        },
        name="bgp-filtering-template")
    # Example 1: Basic IPv4 Unicast Filtering with Prefix Lists and Route Maps
    # This example demonstrates inbound/outbound network filtering using prefix lists
    # and route maps for fine-grained control over advertised and received routes.
    # Create prefix lists for network filtering
    ipv4_inbound_prefix = panos.FiltersPrefixListRoutingProfile("ipv4_inbound_prefix",
        location={
            "template": {
                "name": bgp_template.name,
            },
        },
        name="ipv4-inbound-prefix-list",
        description="Prefix list for incoming IPv4 routes",
        type={
            "ipv4": {
                "ipv4_entries": [
                    {
                        "name": "10",
                        "action": "permit",
                        "prefix": {
                            "entry": {
                                "network": "10.0.0.0/8",
                            },
                        },
                    },
                    {
                        "name": "20",
                        "action": "deny",
                        "prefix": {
                            "entry": {
                                "network": "192.168.0.0/16",
                            },
                        },
                    },
                ],
            },
        })
    ipv4_outbound_prefix = panos.FiltersPrefixListRoutingProfile("ipv4_outbound_prefix",
        location={
            "template": {
                "name": bgp_template.name,
            },
        },
        name="ipv4-outbound-prefix-list",
        description="Prefix list for outgoing IPv4 routes",
        type={
            "ipv4": {
                "ipv4_entries": [{
                    "name": "10",
                    "action": "permit",
                    "prefix": {
                        "entry": {
                            "network": "172.16.0.0/12",
                            "greater_than_or_equal": 16,
                            "less_than_or_equal": 24,
                        },
                    },
                }],
            },
        })
    # Create route maps for advanced filtering
    inbound_route_map = panos.FiltersBgpRouteMapRoutingProfile("inbound_route_map",
        location={
            "template": {
                "name": bgp_template.name,
            },
        },
        name="inbound-route-map",
        description="Route map for incoming routes",
        route_maps=[{
            "name": "10",
            "action": "permit",
            "description": "Permit routes from preferred peers",
        }])
    outbound_route_map = panos.FiltersBgpRouteMapRoutingProfile("outbound_route_map",
        location={
            "template": {
                "name": bgp_template.name,
            },
        },
        name="outbound-route-map",
        description="Route map for outgoing routes",
        route_maps=[{
            "name": "10",
            "action": "permit",
            "description": "Advertise local routes",
        }])
    # BGP Filtering Profile with network filters and route maps
    ipv4_unicast_basic = panos.BgpFilteringRoutingProfile("ipv4_unicast_basic",
        location={
            "template": {
                "name": bgp_template.name,
            },
        },
        name="ipv4-unicast-basic-filtering",
        description="Basic IPv4 unicast filtering with prefix lists and route maps",
        ipv4={
            "unicast": {
                "inbound_network_filters": {
                    "prefix_list": ipv4_inbound_prefix.name,
                },
                "outbound_network_filters": {
                    "prefix_list": ipv4_outbound_prefix.name,
                },
                "route_maps": {
                    "inbound": inbound_route_map.name,
                    "outbound": outbound_route_map.name,
                },
            },
        })
    # Example 2: IPv4 with Conditional Advertisement and AS-Path Filtering
    # This example shows conditional route advertisement based on route existence
    # and AS-path filtering for controlling routes based on AS number patterns.
    # Create route maps for conditional advertisement
    advertise_map = panos.FiltersBgpRouteMapRoutingProfile("advertise_map",
        location={
            "template": {
                "name": bgp_template.name,
            },
        },
        name="advertise-map",
        description="Routes to conditionally advertise",
        route_maps=[{
            "name": "10",
            "action": "permit",
        }])
    exist_map = panos.FiltersBgpRouteMapRoutingProfile("exist_map",
        location={
            "template": {
                "name": bgp_template.name,
            },
        },
        name="exist-map",
        description="Routes that must exist for conditional advertisement",
        route_maps=[{
            "name": "10",
            "action": "permit",
        }])
    # Create AS-path access lists for filtering
    as_path_filter = panos.FiltersAsPathAccessListRoutingProfile("as_path_filter",
        location={
            "template": {
                "name": bgp_template.name,
            },
        },
        name="as-path-filter",
        description="Filter routes based on AS path",
        aspath_entries=[
            {
                "name": "1",
                "action": "permit",
                "aspath_regex": "^65000_",
            },
            {
                "name": "2",
                "action": "deny",
                "aspath_regex": "_65001$",
            },
        ])
    # Create route map for unsuppressing routes
    unsuppress_map = panos.FiltersBgpRouteMapRoutingProfile("unsuppress_map",
        location={
            "template": {
                "name": bgp_template.name,
            },
        },
        name="unsuppress-map",
        description="Routes to unsuppress",
        route_maps=[{
            "name": "10",
            "action": "permit",
        }])
    # BGP Filtering Profile with conditional advertisement
    ipv4_conditional_adv = panos.BgpFilteringRoutingProfile("ipv4_conditional_adv",
        location={
            "template": {
                "name": bgp_template.name,
            },
        },
        name="ipv4-conditional-advertisement",
        description="IPv4 filtering with conditional advertisement and AS-path filtering",
        ipv4={
            "unicast": {
                "conditional_advertisement": {
                    "exist": {
                        "advertise_map": advertise_map.name,
                        "exist_map": exist_map.name,
                    },
                },
                "filter_list": {
                    "inbound": as_path_filter.name,
                },
                "unsuppress_map": unsuppress_map.name,
            },
        })
    # Example 3: IPv6 Unicast Filtering with Access Lists
    # This example demonstrates IPv6 filtering using access lists (distribute lists)
    # instead of prefix lists for network-based filtering.
    # Create IPv6 access lists
    ipv6_inbound_acl = panos.FiltersAccessListRoutingProfile("ipv6_inbound_acl",
        location={
            "template": {
                "name": bgp_template.name,
            },
        },
        name="ipv6-inbound-acl",
        description="Access list for incoming IPv6 routes",
        type={
            "ipv6": {
                "ipv6_entries": [{
                    "name": "10",
                    "action": "permit",
                }],
            },
        })
    ipv6_outbound_acl = panos.FiltersAccessListRoutingProfile("ipv6_outbound_acl",
        location={
            "template": {
                "name": bgp_template.name,
            },
        },
        name="ipv6-outbound-acl",
        description="Access list for outgoing IPv6 routes",
        type={
            "ipv6": {
                "ipv6_entries": [
                    {
                        "name": "10",
                        "action": "permit",
                    },
                    {
                        "name": "20",
                        "action": "deny",
                    },
                ],
            },
        })
    # Create AS-path access list for IPv6 (AS-path filters work for both IPv4 and IPv6)
    ipv6_as_path = panos.FiltersAsPathAccessListRoutingProfile("ipv6_as_path",
        location={
            "template": {
                "name": bgp_template.name,
            },
        },
        name="ipv6-as-path-filter",
        description="AS-path filter for IPv6 routes",
        aspath_entries=[{
            "name": "1",
            "action": "permit",
            "aspath_regex": "^64[0-9]{3}_",
        }])
    # BGP Filtering Profile for IPv6
    ipv6_unicast_filtering = panos.BgpFilteringRoutingProfile("ipv6_unicast_filtering",
        location={
            "template": {
                "name": bgp_template.name,
            },
        },
        name="ipv6-unicast-filtering",
        description="IPv6 unicast filtering with access lists and AS-path filtering",
        ipv6={
            "unicast": {
                "inbound_network_filters": {
                    "distribute_list": ipv6_inbound_acl.name,
                },
                "outbound_network_filters": {
                    "distribute_list": ipv6_outbound_acl.name,
                },
                "filter_list": {
                    "inbound": ipv6_as_path.name,
                    "outbound": ipv6_as_path.name,
                },
            },
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-terraform-provider/sdks/go/panos/v2/panos"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		// Create a template for BGP filtering profiles
    		bgpTemplate, err := panos.NewTemplate(ctx, "bgp_template", &panos.TemplateArgs{
    			Location: &panos.TemplateLocationArgs{
    				Panorama: &panos.TemplateLocationPanoramaArgs{},
    			},
    			Name: pulumi.String("bgp-filtering-template"),
    		})
    		if err != nil {
    			return err
    		}
    		// Create prefix lists for network filtering
    		ipv4InboundPrefix, err := panos.NewFiltersPrefixListRoutingProfile(ctx, "ipv4_inbound_prefix", &panos.FiltersPrefixListRoutingProfileArgs{
    			Location: &panos.FiltersPrefixListRoutingProfileLocationArgs{
    				Template: &panos.FiltersPrefixListRoutingProfileLocationTemplateArgs{
    					Name: bgpTemplate.Name,
    				},
    			},
    			Name:        pulumi.String("ipv4-inbound-prefix-list"),
    			Description: pulumi.String("Prefix list for incoming IPv4 routes"),
    			Type: &panos.FiltersPrefixListRoutingProfileTypeArgs{
    				Ipv4: &panos.FiltersPrefixListRoutingProfileTypeIpv4Args{
    					Ipv4Entries: panos.FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryArray{
    						&panos.FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryArgs{
    							Name:   pulumi.String("10"),
    							Action: pulumi.String("permit"),
    							Prefix: &panos.FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryPrefixArgs{
    								Entry: &panos.FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryPrefixEntryArgs{
    									Network: pulumi.String("10.0.0.0/8"),
    								},
    							},
    						},
    						&panos.FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryArgs{
    							Name:   pulumi.String("20"),
    							Action: pulumi.String("deny"),
    							Prefix: &panos.FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryPrefixArgs{
    								Entry: &panos.FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryPrefixEntryArgs{
    									Network: pulumi.String("192.168.0.0/16"),
    								},
    							},
    						},
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		ipv4OutboundPrefix, err := panos.NewFiltersPrefixListRoutingProfile(ctx, "ipv4_outbound_prefix", &panos.FiltersPrefixListRoutingProfileArgs{
    			Location: &panos.FiltersPrefixListRoutingProfileLocationArgs{
    				Template: &panos.FiltersPrefixListRoutingProfileLocationTemplateArgs{
    					Name: bgpTemplate.Name,
    				},
    			},
    			Name:        pulumi.String("ipv4-outbound-prefix-list"),
    			Description: pulumi.String("Prefix list for outgoing IPv4 routes"),
    			Type: &panos.FiltersPrefixListRoutingProfileTypeArgs{
    				Ipv4: &panos.FiltersPrefixListRoutingProfileTypeIpv4Args{
    					Ipv4Entries: panos.FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryArray{
    						&panos.FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryArgs{
    							Name:   pulumi.String("10"),
    							Action: pulumi.String("permit"),
    							Prefix: &panos.FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryPrefixArgs{
    								Entry: &panos.FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryPrefixEntryArgs{
    									Network:            pulumi.String("172.16.0.0/12"),
    									GreaterThanOrEqual: pulumi.Float64(16),
    									LessThanOrEqual:    pulumi.Float64(24),
    								},
    							},
    						},
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// Create route maps for advanced filtering
    		inboundRouteMap, err := panos.NewFiltersBgpRouteMapRoutingProfile(ctx, "inbound_route_map", &panos.FiltersBgpRouteMapRoutingProfileArgs{
    			Location: &panos.FiltersBgpRouteMapRoutingProfileLocationArgs{
    				Template: &panos.FiltersBgpRouteMapRoutingProfileLocationTemplateArgs{
    					Name: bgpTemplate.Name,
    				},
    			},
    			Name:        pulumi.String("inbound-route-map"),
    			Description: pulumi.String("Route map for incoming routes"),
    			RouteMaps: panos.FiltersBgpRouteMapRoutingProfileRouteMapArray{
    				&panos.FiltersBgpRouteMapRoutingProfileRouteMapArgs{
    					Name:        pulumi.String("10"),
    					Action:      pulumi.String("permit"),
    					Description: pulumi.String("Permit routes from preferred peers"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		outboundRouteMap, err := panos.NewFiltersBgpRouteMapRoutingProfile(ctx, "outbound_route_map", &panos.FiltersBgpRouteMapRoutingProfileArgs{
    			Location: &panos.FiltersBgpRouteMapRoutingProfileLocationArgs{
    				Template: &panos.FiltersBgpRouteMapRoutingProfileLocationTemplateArgs{
    					Name: bgpTemplate.Name,
    				},
    			},
    			Name:        pulumi.String("outbound-route-map"),
    			Description: pulumi.String("Route map for outgoing routes"),
    			RouteMaps: panos.FiltersBgpRouteMapRoutingProfileRouteMapArray{
    				&panos.FiltersBgpRouteMapRoutingProfileRouteMapArgs{
    					Name:        pulumi.String("10"),
    					Action:      pulumi.String("permit"),
    					Description: pulumi.String("Advertise local routes"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// BGP Filtering Profile with network filters and route maps
    		_, err = panos.NewBgpFilteringRoutingProfile(ctx, "ipv4_unicast_basic", &panos.BgpFilteringRoutingProfileArgs{
    			Location: &panos.BgpFilteringRoutingProfileLocationArgs{
    				Template: &panos.BgpFilteringRoutingProfileLocationTemplateArgs{
    					Name: bgpTemplate.Name,
    				},
    			},
    			Name:        pulumi.String("ipv4-unicast-basic-filtering"),
    			Description: pulumi.String("Basic IPv4 unicast filtering with prefix lists and route maps"),
    			Ipv4: &panos.BgpFilteringRoutingProfileIpv4Args{
    				Unicast: &panos.BgpFilteringRoutingProfileIpv4UnicastArgs{
    					InboundNetworkFilters: &panos.BgpFilteringRoutingProfileIpv4UnicastInboundNetworkFiltersArgs{
    						PrefixList: ipv4InboundPrefix.Name,
    					},
    					OutboundNetworkFilters: &panos.BgpFilteringRoutingProfileIpv4UnicastOutboundNetworkFiltersArgs{
    						PrefixList: ipv4OutboundPrefix.Name,
    					},
    					RouteMaps: &panos.BgpFilteringRoutingProfileIpv4UnicastRouteMapsArgs{
    						Inbound:  inboundRouteMap.Name,
    						Outbound: outboundRouteMap.Name,
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// Create route maps for conditional advertisement
    		advertiseMap, err := panos.NewFiltersBgpRouteMapRoutingProfile(ctx, "advertise_map", &panos.FiltersBgpRouteMapRoutingProfileArgs{
    			Location: &panos.FiltersBgpRouteMapRoutingProfileLocationArgs{
    				Template: &panos.FiltersBgpRouteMapRoutingProfileLocationTemplateArgs{
    					Name: bgpTemplate.Name,
    				},
    			},
    			Name:        pulumi.String("advertise-map"),
    			Description: pulumi.String("Routes to conditionally advertise"),
    			RouteMaps: panos.FiltersBgpRouteMapRoutingProfileRouteMapArray{
    				&panos.FiltersBgpRouteMapRoutingProfileRouteMapArgs{
    					Name:   pulumi.String("10"),
    					Action: pulumi.String("permit"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		existMap, err := panos.NewFiltersBgpRouteMapRoutingProfile(ctx, "exist_map", &panos.FiltersBgpRouteMapRoutingProfileArgs{
    			Location: &panos.FiltersBgpRouteMapRoutingProfileLocationArgs{
    				Template: &panos.FiltersBgpRouteMapRoutingProfileLocationTemplateArgs{
    					Name: bgpTemplate.Name,
    				},
    			},
    			Name:        pulumi.String("exist-map"),
    			Description: pulumi.String("Routes that must exist for conditional advertisement"),
    			RouteMaps: panos.FiltersBgpRouteMapRoutingProfileRouteMapArray{
    				&panos.FiltersBgpRouteMapRoutingProfileRouteMapArgs{
    					Name:   pulumi.String("10"),
    					Action: pulumi.String("permit"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// Create AS-path access lists for filtering
    		asPathFilter, err := panos.NewFiltersAsPathAccessListRoutingProfile(ctx, "as_path_filter", &panos.FiltersAsPathAccessListRoutingProfileArgs{
    			Location: &panos.FiltersAsPathAccessListRoutingProfileLocationArgs{
    				Template: &panos.FiltersAsPathAccessListRoutingProfileLocationTemplateArgs{
    					Name: bgpTemplate.Name,
    				},
    			},
    			Name:        pulumi.String("as-path-filter"),
    			Description: pulumi.String("Filter routes based on AS path"),
    			AspathEntries: panos.FiltersAsPathAccessListRoutingProfileAspathEntryArray{
    				&panos.FiltersAsPathAccessListRoutingProfileAspathEntryArgs{
    					Name:        pulumi.String("1"),
    					Action:      pulumi.String("permit"),
    					AspathRegex: pulumi.String("^65000_"),
    				},
    				&panos.FiltersAsPathAccessListRoutingProfileAspathEntryArgs{
    					Name:        pulumi.String("2"),
    					Action:      pulumi.String("deny"),
    					AspathRegex: pulumi.String("_65001$"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// Create route map for unsuppressing routes
    		unsuppressMap, err := panos.NewFiltersBgpRouteMapRoutingProfile(ctx, "unsuppress_map", &panos.FiltersBgpRouteMapRoutingProfileArgs{
    			Location: &panos.FiltersBgpRouteMapRoutingProfileLocationArgs{
    				Template: &panos.FiltersBgpRouteMapRoutingProfileLocationTemplateArgs{
    					Name: bgpTemplate.Name,
    				},
    			},
    			Name:        pulumi.String("unsuppress-map"),
    			Description: pulumi.String("Routes to unsuppress"),
    			RouteMaps: panos.FiltersBgpRouteMapRoutingProfileRouteMapArray{
    				&panos.FiltersBgpRouteMapRoutingProfileRouteMapArgs{
    					Name:   pulumi.String("10"),
    					Action: pulumi.String("permit"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// BGP Filtering Profile with conditional advertisement
    		_, err = panos.NewBgpFilteringRoutingProfile(ctx, "ipv4_conditional_adv", &panos.BgpFilteringRoutingProfileArgs{
    			Location: &panos.BgpFilteringRoutingProfileLocationArgs{
    				Template: &panos.BgpFilteringRoutingProfileLocationTemplateArgs{
    					Name: bgpTemplate.Name,
    				},
    			},
    			Name:        pulumi.String("ipv4-conditional-advertisement"),
    			Description: pulumi.String("IPv4 filtering with conditional advertisement and AS-path filtering"),
    			Ipv4: &panos.BgpFilteringRoutingProfileIpv4Args{
    				Unicast: &panos.BgpFilteringRoutingProfileIpv4UnicastArgs{
    					ConditionalAdvertisement: &panos.BgpFilteringRoutingProfileIpv4UnicastConditionalAdvertisementArgs{
    						Exist: &panos.BgpFilteringRoutingProfileIpv4UnicastConditionalAdvertisementExistArgs{
    							AdvertiseMap: advertiseMap.Name,
    							ExistMap:     existMap.Name,
    						},
    					},
    					FilterList: &panos.BgpFilteringRoutingProfileIpv4UnicastFilterListArgs{
    						Inbound: asPathFilter.Name,
    					},
    					UnsuppressMap: unsuppressMap.Name,
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// Create IPv6 access lists
    		ipv6InboundAcl, err := panos.NewFiltersAccessListRoutingProfile(ctx, "ipv6_inbound_acl", &panos.FiltersAccessListRoutingProfileArgs{
    			Location: &panos.FiltersAccessListRoutingProfileLocationArgs{
    				Template: &panos.FiltersAccessListRoutingProfileLocationTemplateArgs{
    					Name: bgpTemplate.Name,
    				},
    			},
    			Name:        pulumi.String("ipv6-inbound-acl"),
    			Description: pulumi.String("Access list for incoming IPv6 routes"),
    			Type: &panos.FiltersAccessListRoutingProfileTypeArgs{
    				Ipv6: &panos.FiltersAccessListRoutingProfileTypeIpv6Args{
    					Ipv6Entries: panos.FiltersAccessListRoutingProfileTypeIpv6Ipv6EntryArray{
    						&panos.FiltersAccessListRoutingProfileTypeIpv6Ipv6EntryArgs{
    							Name:   pulumi.String("10"),
    							Action: pulumi.String("permit"),
    						},
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		ipv6OutboundAcl, err := panos.NewFiltersAccessListRoutingProfile(ctx, "ipv6_outbound_acl", &panos.FiltersAccessListRoutingProfileArgs{
    			Location: &panos.FiltersAccessListRoutingProfileLocationArgs{
    				Template: &panos.FiltersAccessListRoutingProfileLocationTemplateArgs{
    					Name: bgpTemplate.Name,
    				},
    			},
    			Name:        pulumi.String("ipv6-outbound-acl"),
    			Description: pulumi.String("Access list for outgoing IPv6 routes"),
    			Type: &panos.FiltersAccessListRoutingProfileTypeArgs{
    				Ipv6: &panos.FiltersAccessListRoutingProfileTypeIpv6Args{
    					Ipv6Entries: panos.FiltersAccessListRoutingProfileTypeIpv6Ipv6EntryArray{
    						&panos.FiltersAccessListRoutingProfileTypeIpv6Ipv6EntryArgs{
    							Name:   pulumi.String("10"),
    							Action: pulumi.String("permit"),
    						},
    						&panos.FiltersAccessListRoutingProfileTypeIpv6Ipv6EntryArgs{
    							Name:   pulumi.String("20"),
    							Action: pulumi.String("deny"),
    						},
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// Create AS-path access list for IPv6 (AS-path filters work for both IPv4 and IPv6)
    		ipv6AsPath, err := panos.NewFiltersAsPathAccessListRoutingProfile(ctx, "ipv6_as_path", &panos.FiltersAsPathAccessListRoutingProfileArgs{
    			Location: &panos.FiltersAsPathAccessListRoutingProfileLocationArgs{
    				Template: &panos.FiltersAsPathAccessListRoutingProfileLocationTemplateArgs{
    					Name: bgpTemplate.Name,
    				},
    			},
    			Name:        pulumi.String("ipv6-as-path-filter"),
    			Description: pulumi.String("AS-path filter for IPv6 routes"),
    			AspathEntries: panos.FiltersAsPathAccessListRoutingProfileAspathEntryArray{
    				&panos.FiltersAsPathAccessListRoutingProfileAspathEntryArgs{
    					Name:        pulumi.String("1"),
    					Action:      pulumi.String("permit"),
    					AspathRegex: pulumi.String("^64[0-9]{3}_"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// BGP Filtering Profile for IPv6
    		_, err = panos.NewBgpFilteringRoutingProfile(ctx, "ipv6_unicast_filtering", &panos.BgpFilteringRoutingProfileArgs{
    			Location: &panos.BgpFilteringRoutingProfileLocationArgs{
    				Template: &panos.BgpFilteringRoutingProfileLocationTemplateArgs{
    					Name: bgpTemplate.Name,
    				},
    			},
    			Name:        pulumi.String("ipv6-unicast-filtering"),
    			Description: pulumi.String("IPv6 unicast filtering with access lists and AS-path filtering"),
    			Ipv6: &panos.BgpFilteringRoutingProfileIpv6Args{
    				Unicast: &panos.BgpFilteringRoutingProfileIpv6UnicastArgs{
    					InboundNetworkFilters: &panos.BgpFilteringRoutingProfileIpv6UnicastInboundNetworkFiltersArgs{
    						DistributeList: ipv6InboundAcl.Name,
    					},
    					OutboundNetworkFilters: &panos.BgpFilteringRoutingProfileIpv6UnicastOutboundNetworkFiltersArgs{
    						DistributeList: ipv6OutboundAcl.Name,
    					},
    					FilterList: &panos.BgpFilteringRoutingProfileIpv6UnicastFilterListArgs{
    						Inbound:  ipv6AsPath.Name,
    						Outbound: ipv6AsPath.Name,
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Panos = Pulumi.Panos;
    
    return await Deployment.RunAsync(() => 
    {
        // Create a template for BGP filtering profiles
        var bgpTemplate = new Panos.Template("bgp_template", new()
        {
            Location = new Panos.Inputs.TemplateLocationArgs
            {
                Panorama = null,
            },
            Name = "bgp-filtering-template",
        });
    
        // Example 1: Basic IPv4 Unicast Filtering with Prefix Lists and Route Maps
        // This example demonstrates inbound/outbound network filtering using prefix lists
        // and route maps for fine-grained control over advertised and received routes.
        // Create prefix lists for network filtering
        var ipv4InboundPrefix = new Panos.FiltersPrefixListRoutingProfile("ipv4_inbound_prefix", new()
        {
            Location = new Panos.Inputs.FiltersPrefixListRoutingProfileLocationArgs
            {
                Template = new Panos.Inputs.FiltersPrefixListRoutingProfileLocationTemplateArgs
                {
                    Name = bgpTemplate.Name,
                },
            },
            Name = "ipv4-inbound-prefix-list",
            Description = "Prefix list for incoming IPv4 routes",
            Type = new Panos.Inputs.FiltersPrefixListRoutingProfileTypeArgs
            {
                Ipv4 = new Panos.Inputs.FiltersPrefixListRoutingProfileTypeIpv4Args
                {
                    Ipv4Entries = new[]
                    {
                        new Panos.Inputs.FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryArgs
                        {
                            Name = "10",
                            Action = "permit",
                            Prefix = new Panos.Inputs.FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryPrefixArgs
                            {
                                Entry = new Panos.Inputs.FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryPrefixEntryArgs
                                {
                                    Network = "10.0.0.0/8",
                                },
                            },
                        },
                        new Panos.Inputs.FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryArgs
                        {
                            Name = "20",
                            Action = "deny",
                            Prefix = new Panos.Inputs.FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryPrefixArgs
                            {
                                Entry = new Panos.Inputs.FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryPrefixEntryArgs
                                {
                                    Network = "192.168.0.0/16",
                                },
                            },
                        },
                    },
                },
            },
        });
    
        var ipv4OutboundPrefix = new Panos.FiltersPrefixListRoutingProfile("ipv4_outbound_prefix", new()
        {
            Location = new Panos.Inputs.FiltersPrefixListRoutingProfileLocationArgs
            {
                Template = new Panos.Inputs.FiltersPrefixListRoutingProfileLocationTemplateArgs
                {
                    Name = bgpTemplate.Name,
                },
            },
            Name = "ipv4-outbound-prefix-list",
            Description = "Prefix list for outgoing IPv4 routes",
            Type = new Panos.Inputs.FiltersPrefixListRoutingProfileTypeArgs
            {
                Ipv4 = new Panos.Inputs.FiltersPrefixListRoutingProfileTypeIpv4Args
                {
                    Ipv4Entries = new[]
                    {
                        new Panos.Inputs.FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryArgs
                        {
                            Name = "10",
                            Action = "permit",
                            Prefix = new Panos.Inputs.FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryPrefixArgs
                            {
                                Entry = new Panos.Inputs.FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryPrefixEntryArgs
                                {
                                    Network = "172.16.0.0/12",
                                    GreaterThanOrEqual = 16,
                                    LessThanOrEqual = 24,
                                },
                            },
                        },
                    },
                },
            },
        });
    
        // Create route maps for advanced filtering
        var inboundRouteMap = new Panos.FiltersBgpRouteMapRoutingProfile("inbound_route_map", new()
        {
            Location = new Panos.Inputs.FiltersBgpRouteMapRoutingProfileLocationArgs
            {
                Template = new Panos.Inputs.FiltersBgpRouteMapRoutingProfileLocationTemplateArgs
                {
                    Name = bgpTemplate.Name,
                },
            },
            Name = "inbound-route-map",
            Description = "Route map for incoming routes",
            RouteMaps = new[]
            {
                new Panos.Inputs.FiltersBgpRouteMapRoutingProfileRouteMapArgs
                {
                    Name = "10",
                    Action = "permit",
                    Description = "Permit routes from preferred peers",
                },
            },
        });
    
        var outboundRouteMap = new Panos.FiltersBgpRouteMapRoutingProfile("outbound_route_map", new()
        {
            Location = new Panos.Inputs.FiltersBgpRouteMapRoutingProfileLocationArgs
            {
                Template = new Panos.Inputs.FiltersBgpRouteMapRoutingProfileLocationTemplateArgs
                {
                    Name = bgpTemplate.Name,
                },
            },
            Name = "outbound-route-map",
            Description = "Route map for outgoing routes",
            RouteMaps = new[]
            {
                new Panos.Inputs.FiltersBgpRouteMapRoutingProfileRouteMapArgs
                {
                    Name = "10",
                    Action = "permit",
                    Description = "Advertise local routes",
                },
            },
        });
    
        // BGP Filtering Profile with network filters and route maps
        var ipv4UnicastBasic = new Panos.BgpFilteringRoutingProfile("ipv4_unicast_basic", new()
        {
            Location = new Panos.Inputs.BgpFilteringRoutingProfileLocationArgs
            {
                Template = new Panos.Inputs.BgpFilteringRoutingProfileLocationTemplateArgs
                {
                    Name = bgpTemplate.Name,
                },
            },
            Name = "ipv4-unicast-basic-filtering",
            Description = "Basic IPv4 unicast filtering with prefix lists and route maps",
            Ipv4 = new Panos.Inputs.BgpFilteringRoutingProfileIpv4Args
            {
                Unicast = new Panos.Inputs.BgpFilteringRoutingProfileIpv4UnicastArgs
                {
                    InboundNetworkFilters = new Panos.Inputs.BgpFilteringRoutingProfileIpv4UnicastInboundNetworkFiltersArgs
                    {
                        PrefixList = ipv4InboundPrefix.Name,
                    },
                    OutboundNetworkFilters = new Panos.Inputs.BgpFilteringRoutingProfileIpv4UnicastOutboundNetworkFiltersArgs
                    {
                        PrefixList = ipv4OutboundPrefix.Name,
                    },
                    RouteMaps = new Panos.Inputs.BgpFilteringRoutingProfileIpv4UnicastRouteMapsArgs
                    {
                        Inbound = inboundRouteMap.Name,
                        Outbound = outboundRouteMap.Name,
                    },
                },
            },
        });
    
        // Example 2: IPv4 with Conditional Advertisement and AS-Path Filtering
        // This example shows conditional route advertisement based on route existence
        // and AS-path filtering for controlling routes based on AS number patterns.
        // Create route maps for conditional advertisement
        var advertiseMap = new Panos.FiltersBgpRouteMapRoutingProfile("advertise_map", new()
        {
            Location = new Panos.Inputs.FiltersBgpRouteMapRoutingProfileLocationArgs
            {
                Template = new Panos.Inputs.FiltersBgpRouteMapRoutingProfileLocationTemplateArgs
                {
                    Name = bgpTemplate.Name,
                },
            },
            Name = "advertise-map",
            Description = "Routes to conditionally advertise",
            RouteMaps = new[]
            {
                new Panos.Inputs.FiltersBgpRouteMapRoutingProfileRouteMapArgs
                {
                    Name = "10",
                    Action = "permit",
                },
            },
        });
    
        var existMap = new Panos.FiltersBgpRouteMapRoutingProfile("exist_map", new()
        {
            Location = new Panos.Inputs.FiltersBgpRouteMapRoutingProfileLocationArgs
            {
                Template = new Panos.Inputs.FiltersBgpRouteMapRoutingProfileLocationTemplateArgs
                {
                    Name = bgpTemplate.Name,
                },
            },
            Name = "exist-map",
            Description = "Routes that must exist for conditional advertisement",
            RouteMaps = new[]
            {
                new Panos.Inputs.FiltersBgpRouteMapRoutingProfileRouteMapArgs
                {
                    Name = "10",
                    Action = "permit",
                },
            },
        });
    
        // Create AS-path access lists for filtering
        var asPathFilter = new Panos.FiltersAsPathAccessListRoutingProfile("as_path_filter", new()
        {
            Location = new Panos.Inputs.FiltersAsPathAccessListRoutingProfileLocationArgs
            {
                Template = new Panos.Inputs.FiltersAsPathAccessListRoutingProfileLocationTemplateArgs
                {
                    Name = bgpTemplate.Name,
                },
            },
            Name = "as-path-filter",
            Description = "Filter routes based on AS path",
            AspathEntries = new[]
            {
                new Panos.Inputs.FiltersAsPathAccessListRoutingProfileAspathEntryArgs
                {
                    Name = "1",
                    Action = "permit",
                    AspathRegex = "^65000_",
                },
                new Panos.Inputs.FiltersAsPathAccessListRoutingProfileAspathEntryArgs
                {
                    Name = "2",
                    Action = "deny",
                    AspathRegex = "_65001$",
                },
            },
        });
    
        // Create route map for unsuppressing routes
        var unsuppressMap = new Panos.FiltersBgpRouteMapRoutingProfile("unsuppress_map", new()
        {
            Location = new Panos.Inputs.FiltersBgpRouteMapRoutingProfileLocationArgs
            {
                Template = new Panos.Inputs.FiltersBgpRouteMapRoutingProfileLocationTemplateArgs
                {
                    Name = bgpTemplate.Name,
                },
            },
            Name = "unsuppress-map",
            Description = "Routes to unsuppress",
            RouteMaps = new[]
            {
                new Panos.Inputs.FiltersBgpRouteMapRoutingProfileRouteMapArgs
                {
                    Name = "10",
                    Action = "permit",
                },
            },
        });
    
        // BGP Filtering Profile with conditional advertisement
        var ipv4ConditionalAdv = new Panos.BgpFilteringRoutingProfile("ipv4_conditional_adv", new()
        {
            Location = new Panos.Inputs.BgpFilteringRoutingProfileLocationArgs
            {
                Template = new Panos.Inputs.BgpFilteringRoutingProfileLocationTemplateArgs
                {
                    Name = bgpTemplate.Name,
                },
            },
            Name = "ipv4-conditional-advertisement",
            Description = "IPv4 filtering with conditional advertisement and AS-path filtering",
            Ipv4 = new Panos.Inputs.BgpFilteringRoutingProfileIpv4Args
            {
                Unicast = new Panos.Inputs.BgpFilteringRoutingProfileIpv4UnicastArgs
                {
                    ConditionalAdvertisement = new Panos.Inputs.BgpFilteringRoutingProfileIpv4UnicastConditionalAdvertisementArgs
                    {
                        Exist = new Panos.Inputs.BgpFilteringRoutingProfileIpv4UnicastConditionalAdvertisementExistArgs
                        {
                            AdvertiseMap = advertiseMap.Name,
                            ExistMap = existMap.Name,
                        },
                    },
                    FilterList = new Panos.Inputs.BgpFilteringRoutingProfileIpv4UnicastFilterListArgs
                    {
                        Inbound = asPathFilter.Name,
                    },
                    UnsuppressMap = unsuppressMap.Name,
                },
            },
        });
    
        // Example 3: IPv6 Unicast Filtering with Access Lists
        // This example demonstrates IPv6 filtering using access lists (distribute lists)
        // instead of prefix lists for network-based filtering.
        // Create IPv6 access lists
        var ipv6InboundAcl = new Panos.FiltersAccessListRoutingProfile("ipv6_inbound_acl", new()
        {
            Location = new Panos.Inputs.FiltersAccessListRoutingProfileLocationArgs
            {
                Template = new Panos.Inputs.FiltersAccessListRoutingProfileLocationTemplateArgs
                {
                    Name = bgpTemplate.Name,
                },
            },
            Name = "ipv6-inbound-acl",
            Description = "Access list for incoming IPv6 routes",
            Type = new Panos.Inputs.FiltersAccessListRoutingProfileTypeArgs
            {
                Ipv6 = new Panos.Inputs.FiltersAccessListRoutingProfileTypeIpv6Args
                {
                    Ipv6Entries = new[]
                    {
                        new Panos.Inputs.FiltersAccessListRoutingProfileTypeIpv6Ipv6EntryArgs
                        {
                            Name = "10",
                            Action = "permit",
                        },
                    },
                },
            },
        });
    
        var ipv6OutboundAcl = new Panos.FiltersAccessListRoutingProfile("ipv6_outbound_acl", new()
        {
            Location = new Panos.Inputs.FiltersAccessListRoutingProfileLocationArgs
            {
                Template = new Panos.Inputs.FiltersAccessListRoutingProfileLocationTemplateArgs
                {
                    Name = bgpTemplate.Name,
                },
            },
            Name = "ipv6-outbound-acl",
            Description = "Access list for outgoing IPv6 routes",
            Type = new Panos.Inputs.FiltersAccessListRoutingProfileTypeArgs
            {
                Ipv6 = new Panos.Inputs.FiltersAccessListRoutingProfileTypeIpv6Args
                {
                    Ipv6Entries = new[]
                    {
                        new Panos.Inputs.FiltersAccessListRoutingProfileTypeIpv6Ipv6EntryArgs
                        {
                            Name = "10",
                            Action = "permit",
                        },
                        new Panos.Inputs.FiltersAccessListRoutingProfileTypeIpv6Ipv6EntryArgs
                        {
                            Name = "20",
                            Action = "deny",
                        },
                    },
                },
            },
        });
    
        // Create AS-path access list for IPv6 (AS-path filters work for both IPv4 and IPv6)
        var ipv6AsPath = new Panos.FiltersAsPathAccessListRoutingProfile("ipv6_as_path", new()
        {
            Location = new Panos.Inputs.FiltersAsPathAccessListRoutingProfileLocationArgs
            {
                Template = new Panos.Inputs.FiltersAsPathAccessListRoutingProfileLocationTemplateArgs
                {
                    Name = bgpTemplate.Name,
                },
            },
            Name = "ipv6-as-path-filter",
            Description = "AS-path filter for IPv6 routes",
            AspathEntries = new[]
            {
                new Panos.Inputs.FiltersAsPathAccessListRoutingProfileAspathEntryArgs
                {
                    Name = "1",
                    Action = "permit",
                    AspathRegex = "^64[0-9]{3}_",
                },
            },
        });
    
        // BGP Filtering Profile for IPv6
        var ipv6UnicastFiltering = new Panos.BgpFilteringRoutingProfile("ipv6_unicast_filtering", new()
        {
            Location = new Panos.Inputs.BgpFilteringRoutingProfileLocationArgs
            {
                Template = new Panos.Inputs.BgpFilteringRoutingProfileLocationTemplateArgs
                {
                    Name = bgpTemplate.Name,
                },
            },
            Name = "ipv6-unicast-filtering",
            Description = "IPv6 unicast filtering with access lists and AS-path filtering",
            Ipv6 = new Panos.Inputs.BgpFilteringRoutingProfileIpv6Args
            {
                Unicast = new Panos.Inputs.BgpFilteringRoutingProfileIpv6UnicastArgs
                {
                    InboundNetworkFilters = new Panos.Inputs.BgpFilteringRoutingProfileIpv6UnicastInboundNetworkFiltersArgs
                    {
                        DistributeList = ipv6InboundAcl.Name,
                    },
                    OutboundNetworkFilters = new Panos.Inputs.BgpFilteringRoutingProfileIpv6UnicastOutboundNetworkFiltersArgs
                    {
                        DistributeList = ipv6OutboundAcl.Name,
                    },
                    FilterList = new Panos.Inputs.BgpFilteringRoutingProfileIpv6UnicastFilterListArgs
                    {
                        Inbound = ipv6AsPath.Name,
                        Outbound = ipv6AsPath.Name,
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.panos.Template;
    import com.pulumi.panos.TemplateArgs;
    import com.pulumi.panos.inputs.TemplateLocationArgs;
    import com.pulumi.panos.inputs.TemplateLocationPanoramaArgs;
    import com.pulumi.panos.FiltersPrefixListRoutingProfile;
    import com.pulumi.panos.FiltersPrefixListRoutingProfileArgs;
    import com.pulumi.panos.inputs.FiltersPrefixListRoutingProfileLocationArgs;
    import com.pulumi.panos.inputs.FiltersPrefixListRoutingProfileLocationTemplateArgs;
    import com.pulumi.panos.inputs.FiltersPrefixListRoutingProfileTypeArgs;
    import com.pulumi.panos.inputs.FiltersPrefixListRoutingProfileTypeIpv4Args;
    import com.pulumi.panos.FiltersBgpRouteMapRoutingProfile;
    import com.pulumi.panos.FiltersBgpRouteMapRoutingProfileArgs;
    import com.pulumi.panos.inputs.FiltersBgpRouteMapRoutingProfileLocationArgs;
    import com.pulumi.panos.inputs.FiltersBgpRouteMapRoutingProfileLocationTemplateArgs;
    import com.pulumi.panos.inputs.FiltersBgpRouteMapRoutingProfileRouteMapArgs;
    import com.pulumi.panos.BgpFilteringRoutingProfile;
    import com.pulumi.panos.BgpFilteringRoutingProfileArgs;
    import com.pulumi.panos.inputs.BgpFilteringRoutingProfileLocationArgs;
    import com.pulumi.panos.inputs.BgpFilteringRoutingProfileLocationTemplateArgs;
    import com.pulumi.panos.inputs.BgpFilteringRoutingProfileIpv4Args;
    import com.pulumi.panos.inputs.BgpFilteringRoutingProfileIpv4UnicastArgs;
    import com.pulumi.panos.inputs.BgpFilteringRoutingProfileIpv4UnicastInboundNetworkFiltersArgs;
    import com.pulumi.panos.inputs.BgpFilteringRoutingProfileIpv4UnicastOutboundNetworkFiltersArgs;
    import com.pulumi.panos.inputs.BgpFilteringRoutingProfileIpv4UnicastRouteMapsArgs;
    import com.pulumi.panos.FiltersAsPathAccessListRoutingProfile;
    import com.pulumi.panos.FiltersAsPathAccessListRoutingProfileArgs;
    import com.pulumi.panos.inputs.FiltersAsPathAccessListRoutingProfileLocationArgs;
    import com.pulumi.panos.inputs.FiltersAsPathAccessListRoutingProfileLocationTemplateArgs;
    import com.pulumi.panos.inputs.FiltersAsPathAccessListRoutingProfileAspathEntryArgs;
    import com.pulumi.panos.inputs.BgpFilteringRoutingProfileIpv4UnicastConditionalAdvertisementArgs;
    import com.pulumi.panos.inputs.BgpFilteringRoutingProfileIpv4UnicastConditionalAdvertisementExistArgs;
    import com.pulumi.panos.inputs.BgpFilteringRoutingProfileIpv4UnicastFilterListArgs;
    import com.pulumi.panos.FiltersAccessListRoutingProfile;
    import com.pulumi.panos.FiltersAccessListRoutingProfileArgs;
    import com.pulumi.panos.inputs.FiltersAccessListRoutingProfileLocationArgs;
    import com.pulumi.panos.inputs.FiltersAccessListRoutingProfileLocationTemplateArgs;
    import com.pulumi.panos.inputs.FiltersAccessListRoutingProfileTypeArgs;
    import com.pulumi.panos.inputs.FiltersAccessListRoutingProfileTypeIpv6Args;
    import com.pulumi.panos.inputs.BgpFilteringRoutingProfileIpv6Args;
    import com.pulumi.panos.inputs.BgpFilteringRoutingProfileIpv6UnicastArgs;
    import com.pulumi.panos.inputs.BgpFilteringRoutingProfileIpv6UnicastInboundNetworkFiltersArgs;
    import com.pulumi.panos.inputs.BgpFilteringRoutingProfileIpv6UnicastOutboundNetworkFiltersArgs;
    import com.pulumi.panos.inputs.BgpFilteringRoutingProfileIpv6UnicastFilterListArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            // Create a template for BGP filtering profiles
            var bgpTemplate = new Template("bgpTemplate", TemplateArgs.builder()
                .location(TemplateLocationArgs.builder()
                    .panorama(TemplateLocationPanoramaArgs.builder()
                        .build())
                    .build())
                .name("bgp-filtering-template")
                .build());
    
            // Example 1: Basic IPv4 Unicast Filtering with Prefix Lists and Route Maps
            // This example demonstrates inbound/outbound network filtering using prefix lists
            // and route maps for fine-grained control over advertised and received routes.
            // Create prefix lists for network filtering
            var ipv4InboundPrefix = new FiltersPrefixListRoutingProfile("ipv4InboundPrefix", FiltersPrefixListRoutingProfileArgs.builder()
                .location(FiltersPrefixListRoutingProfileLocationArgs.builder()
                    .template(FiltersPrefixListRoutingProfileLocationTemplateArgs.builder()
                        .name(bgpTemplate.name())
                        .build())
                    .build())
                .name("ipv4-inbound-prefix-list")
                .description("Prefix list for incoming IPv4 routes")
                .type(FiltersPrefixListRoutingProfileTypeArgs.builder()
                    .ipv4(FiltersPrefixListRoutingProfileTypeIpv4Args.builder()
                        .ipv4Entries(                    
                            FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryArgs.builder()
                                .name("10")
                                .action("permit")
                                .prefix(FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryPrefixArgs.builder()
                                    .entry(FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryPrefixEntryArgs.builder()
                                        .network("10.0.0.0/8")
                                        .build())
                                    .build())
                                .build(),
                            FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryArgs.builder()
                                .name("20")
                                .action("deny")
                                .prefix(FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryPrefixArgs.builder()
                                    .entry(FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryPrefixEntryArgs.builder()
                                        .network("192.168.0.0/16")
                                        .build())
                                    .build())
                                .build())
                        .build())
                    .build())
                .build());
    
            var ipv4OutboundPrefix = new FiltersPrefixListRoutingProfile("ipv4OutboundPrefix", FiltersPrefixListRoutingProfileArgs.builder()
                .location(FiltersPrefixListRoutingProfileLocationArgs.builder()
                    .template(FiltersPrefixListRoutingProfileLocationTemplateArgs.builder()
                        .name(bgpTemplate.name())
                        .build())
                    .build())
                .name("ipv4-outbound-prefix-list")
                .description("Prefix list for outgoing IPv4 routes")
                .type(FiltersPrefixListRoutingProfileTypeArgs.builder()
                    .ipv4(FiltersPrefixListRoutingProfileTypeIpv4Args.builder()
                        .ipv4Entries(FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryArgs.builder()
                            .name("10")
                            .action("permit")
                            .prefix(FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryPrefixArgs.builder()
                                .entry(FiltersPrefixListRoutingProfileTypeIpv4Ipv4EntryPrefixEntryArgs.builder()
                                    .network("172.16.0.0/12")
                                    .greaterThanOrEqual(16.0)
                                    .lessThanOrEqual(24.0)
                                    .build())
                                .build())
                            .build())
                        .build())
                    .build())
                .build());
    
            // Create route maps for advanced filtering
            var inboundRouteMap = new FiltersBgpRouteMapRoutingProfile("inboundRouteMap", FiltersBgpRouteMapRoutingProfileArgs.builder()
                .location(FiltersBgpRouteMapRoutingProfileLocationArgs.builder()
                    .template(FiltersBgpRouteMapRoutingProfileLocationTemplateArgs.builder()
                        .name(bgpTemplate.name())
                        .build())
                    .build())
                .name("inbound-route-map")
                .description("Route map for incoming routes")
                .routeMaps(FiltersBgpRouteMapRoutingProfileRouteMapArgs.builder()
                    .name("10")
                    .action("permit")
                    .description("Permit routes from preferred peers")
                    .build())
                .build());
    
            var outboundRouteMap = new FiltersBgpRouteMapRoutingProfile("outboundRouteMap", FiltersBgpRouteMapRoutingProfileArgs.builder()
                .location(FiltersBgpRouteMapRoutingProfileLocationArgs.builder()
                    .template(FiltersBgpRouteMapRoutingProfileLocationTemplateArgs.builder()
                        .name(bgpTemplate.name())
                        .build())
                    .build())
                .name("outbound-route-map")
                .description("Route map for outgoing routes")
                .routeMaps(FiltersBgpRouteMapRoutingProfileRouteMapArgs.builder()
                    .name("10")
                    .action("permit")
                    .description("Advertise local routes")
                    .build())
                .build());
    
            // BGP Filtering Profile with network filters and route maps
            var ipv4UnicastBasic = new BgpFilteringRoutingProfile("ipv4UnicastBasic", BgpFilteringRoutingProfileArgs.builder()
                .location(BgpFilteringRoutingProfileLocationArgs.builder()
                    .template(BgpFilteringRoutingProfileLocationTemplateArgs.builder()
                        .name(bgpTemplate.name())
                        .build())
                    .build())
                .name("ipv4-unicast-basic-filtering")
                .description("Basic IPv4 unicast filtering with prefix lists and route maps")
                .ipv4(BgpFilteringRoutingProfileIpv4Args.builder()
                    .unicast(BgpFilteringRoutingProfileIpv4UnicastArgs.builder()
                        .inboundNetworkFilters(BgpFilteringRoutingProfileIpv4UnicastInboundNetworkFiltersArgs.builder()
                            .prefixList(ipv4InboundPrefix.name())
                            .build())
                        .outboundNetworkFilters(BgpFilteringRoutingProfileIpv4UnicastOutboundNetworkFiltersArgs.builder()
                            .prefixList(ipv4OutboundPrefix.name())
                            .build())
                        .routeMaps(BgpFilteringRoutingProfileIpv4UnicastRouteMapsArgs.builder()
                            .inbound(inboundRouteMap.name())
                            .outbound(outboundRouteMap.name())
                            .build())
                        .build())
                    .build())
                .build());
    
            // Example 2: IPv4 with Conditional Advertisement and AS-Path Filtering
            // This example shows conditional route advertisement based on route existence
            // and AS-path filtering for controlling routes based on AS number patterns.
            // Create route maps for conditional advertisement
            var advertiseMap = new FiltersBgpRouteMapRoutingProfile("advertiseMap", FiltersBgpRouteMapRoutingProfileArgs.builder()
                .location(FiltersBgpRouteMapRoutingProfileLocationArgs.builder()
                    .template(FiltersBgpRouteMapRoutingProfileLocationTemplateArgs.builder()
                        .name(bgpTemplate.name())
                        .build())
                    .build())
                .name("advertise-map")
                .description("Routes to conditionally advertise")
                .routeMaps(FiltersBgpRouteMapRoutingProfileRouteMapArgs.builder()
                    .name("10")
                    .action("permit")
                    .build())
                .build());
    
            var existMap = new FiltersBgpRouteMapRoutingProfile("existMap", FiltersBgpRouteMapRoutingProfileArgs.builder()
                .location(FiltersBgpRouteMapRoutingProfileLocationArgs.builder()
                    .template(FiltersBgpRouteMapRoutingProfileLocationTemplateArgs.builder()
                        .name(bgpTemplate.name())
                        .build())
                    .build())
                .name("exist-map")
                .description("Routes that must exist for conditional advertisement")
                .routeMaps(FiltersBgpRouteMapRoutingProfileRouteMapArgs.builder()
                    .name("10")
                    .action("permit")
                    .build())
                .build());
    
            // Create AS-path access lists for filtering
            var asPathFilter = new FiltersAsPathAccessListRoutingProfile("asPathFilter", FiltersAsPathAccessListRoutingProfileArgs.builder()
                .location(FiltersAsPathAccessListRoutingProfileLocationArgs.builder()
                    .template(FiltersAsPathAccessListRoutingProfileLocationTemplateArgs.builder()
                        .name(bgpTemplate.name())
                        .build())
                    .build())
                .name("as-path-filter")
                .description("Filter routes based on AS path")
                .aspathEntries(            
                    FiltersAsPathAccessListRoutingProfileAspathEntryArgs.builder()
                        .name("1")
                        .action("permit")
                        .aspathRegex("^65000_")
                        .build(),
                    FiltersAsPathAccessListRoutingProfileAspathEntryArgs.builder()
                        .name("2")
                        .action("deny")
                        .aspathRegex("_65001$")
                        .build())
                .build());
    
            // Create route map for unsuppressing routes
            var unsuppressMap = new FiltersBgpRouteMapRoutingProfile("unsuppressMap", FiltersBgpRouteMapRoutingProfileArgs.builder()
                .location(FiltersBgpRouteMapRoutingProfileLocationArgs.builder()
                    .template(FiltersBgpRouteMapRoutingProfileLocationTemplateArgs.builder()
                        .name(bgpTemplate.name())
                        .build())
                    .build())
                .name("unsuppress-map")
                .description("Routes to unsuppress")
                .routeMaps(FiltersBgpRouteMapRoutingProfileRouteMapArgs.builder()
                    .name("10")
                    .action("permit")
                    .build())
                .build());
    
            // BGP Filtering Profile with conditional advertisement
            var ipv4ConditionalAdv = new BgpFilteringRoutingProfile("ipv4ConditionalAdv", BgpFilteringRoutingProfileArgs.builder()
                .location(BgpFilteringRoutingProfileLocationArgs.builder()
                    .template(BgpFilteringRoutingProfileLocationTemplateArgs.builder()
                        .name(bgpTemplate.name())
                        .build())
                    .build())
                .name("ipv4-conditional-advertisement")
                .description("IPv4 filtering with conditional advertisement and AS-path filtering")
                .ipv4(BgpFilteringRoutingProfileIpv4Args.builder()
                    .unicast(BgpFilteringRoutingProfileIpv4UnicastArgs.builder()
                        .conditionalAdvertisement(BgpFilteringRoutingProfileIpv4UnicastConditionalAdvertisementArgs.builder()
                            .exist(BgpFilteringRoutingProfileIpv4UnicastConditionalAdvertisementExistArgs.builder()
                                .advertiseMap(advertiseMap.name())
                                .existMap(existMap.name())
                                .build())
                            .build())
                        .filterList(BgpFilteringRoutingProfileIpv4UnicastFilterListArgs.builder()
                            .inbound(asPathFilter.name())
                            .build())
                        .unsuppressMap(unsuppressMap.name())
                        .build())
                    .build())
                .build());
    
            // Example 3: IPv6 Unicast Filtering with Access Lists
            // This example demonstrates IPv6 filtering using access lists (distribute lists)
            // instead of prefix lists for network-based filtering.
            // Create IPv6 access lists
            var ipv6InboundAcl = new FiltersAccessListRoutingProfile("ipv6InboundAcl", FiltersAccessListRoutingProfileArgs.builder()
                .location(FiltersAccessListRoutingProfileLocationArgs.builder()
                    .template(FiltersAccessListRoutingProfileLocationTemplateArgs.builder()
                        .name(bgpTemplate.name())
                        .build())
                    .build())
                .name("ipv6-inbound-acl")
                .description("Access list for incoming IPv6 routes")
                .type(FiltersAccessListRoutingProfileTypeArgs.builder()
                    .ipv6(FiltersAccessListRoutingProfileTypeIpv6Args.builder()
                        .ipv6Entries(FiltersAccessListRoutingProfileTypeIpv6Ipv6EntryArgs.builder()
                            .name("10")
                            .action("permit")
                            .build())
                        .build())
                    .build())
                .build());
    
            var ipv6OutboundAcl = new FiltersAccessListRoutingProfile("ipv6OutboundAcl", FiltersAccessListRoutingProfileArgs.builder()
                .location(FiltersAccessListRoutingProfileLocationArgs.builder()
                    .template(FiltersAccessListRoutingProfileLocationTemplateArgs.builder()
                        .name(bgpTemplate.name())
                        .build())
                    .build())
                .name("ipv6-outbound-acl")
                .description("Access list for outgoing IPv6 routes")
                .type(FiltersAccessListRoutingProfileTypeArgs.builder()
                    .ipv6(FiltersAccessListRoutingProfileTypeIpv6Args.builder()
                        .ipv6Entries(                    
                            FiltersAccessListRoutingProfileTypeIpv6Ipv6EntryArgs.builder()
                                .name("10")
                                .action("permit")
                                .build(),
                            FiltersAccessListRoutingProfileTypeIpv6Ipv6EntryArgs.builder()
                                .name("20")
                                .action("deny")
                                .build())
                        .build())
                    .build())
                .build());
    
            // Create AS-path access list for IPv6 (AS-path filters work for both IPv4 and IPv6)
            var ipv6AsPath = new FiltersAsPathAccessListRoutingProfile("ipv6AsPath", FiltersAsPathAccessListRoutingProfileArgs.builder()
                .location(FiltersAsPathAccessListRoutingProfileLocationArgs.builder()
                    .template(FiltersAsPathAccessListRoutingProfileLocationTemplateArgs.builder()
                        .name(bgpTemplate.name())
                        .build())
                    .build())
                .name("ipv6-as-path-filter")
                .description("AS-path filter for IPv6 routes")
                .aspathEntries(FiltersAsPathAccessListRoutingProfileAspathEntryArgs.builder()
                    .name("1")
                    .action("permit")
                    .aspathRegex("^64[0-9]{3}_")
                    .build())
                .build());
    
            // BGP Filtering Profile for IPv6
            var ipv6UnicastFiltering = new BgpFilteringRoutingProfile("ipv6UnicastFiltering", BgpFilteringRoutingProfileArgs.builder()
                .location(BgpFilteringRoutingProfileLocationArgs.builder()
                    .template(BgpFilteringRoutingProfileLocationTemplateArgs.builder()
                        .name(bgpTemplate.name())
                        .build())
                    .build())
                .name("ipv6-unicast-filtering")
                .description("IPv6 unicast filtering with access lists and AS-path filtering")
                .ipv6(BgpFilteringRoutingProfileIpv6Args.builder()
                    .unicast(BgpFilteringRoutingProfileIpv6UnicastArgs.builder()
                        .inboundNetworkFilters(BgpFilteringRoutingProfileIpv6UnicastInboundNetworkFiltersArgs.builder()
                            .distributeList(ipv6InboundAcl.name())
                            .build())
                        .outboundNetworkFilters(BgpFilteringRoutingProfileIpv6UnicastOutboundNetworkFiltersArgs.builder()
                            .distributeList(ipv6OutboundAcl.name())
                            .build())
                        .filterList(BgpFilteringRoutingProfileIpv6UnicastFilterListArgs.builder()
                            .inbound(ipv6AsPath.name())
                            .outbound(ipv6AsPath.name())
                            .build())
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      # Create a template for BGP filtering profiles
      bgpTemplate: # Example 1: Basic IPv4 Unicast Filtering with Prefix Lists and Route Maps
      # This example demonstrates inbound/outbound network filtering using prefix lists
      # and route maps for fine-grained control over advertised and received routes.
        type: panos:Template
        name: bgp_template
        properties:
          location:
            panorama: {}
          name: bgp-filtering-template
      # Create prefix lists for network filtering
      ipv4InboundPrefix:
        type: panos:FiltersPrefixListRoutingProfile
        name: ipv4_inbound_prefix
        properties:
          location:
            template:
              name: ${bgpTemplate.name}
          name: ipv4-inbound-prefix-list
          description: Prefix list for incoming IPv4 routes
          type:
            ipv4:
              ipv4Entries:
                - name: '10'
                  action: permit
                  prefix:
                    entry:
                      network: 10.0.0.0/8
                - name: '20'
                  action: deny
                  prefix:
                    entry:
                      network: 192.168.0.0/16
      ipv4OutboundPrefix:
        type: panos:FiltersPrefixListRoutingProfile
        name: ipv4_outbound_prefix
        properties:
          location:
            template:
              name: ${bgpTemplate.name}
          name: ipv4-outbound-prefix-list
          description: Prefix list for outgoing IPv4 routes
          type:
            ipv4:
              ipv4Entries:
                - name: '10'
                  action: permit
                  prefix:
                    entry:
                      network: 172.16.0.0/12
                      greaterThanOrEqual: 16
                      lessThanOrEqual: 24
      # Create route maps for advanced filtering
      inboundRouteMap:
        type: panos:FiltersBgpRouteMapRoutingProfile
        name: inbound_route_map
        properties:
          location:
            template:
              name: ${bgpTemplate.name}
          name: inbound-route-map
          description: Route map for incoming routes
          routeMaps:
            - name: '10'
              action: permit
              description: Permit routes from preferred peers
      outboundRouteMap:
        type: panos:FiltersBgpRouteMapRoutingProfile
        name: outbound_route_map
        properties:
          location:
            template:
              name: ${bgpTemplate.name}
          name: outbound-route-map
          description: Route map for outgoing routes
          routeMaps:
            - name: '10'
              action: permit
              description: Advertise local routes
      # BGP Filtering Profile with network filters and route maps
      ipv4UnicastBasic: # Example 2: IPv4 with Conditional Advertisement and AS-Path Filtering
      # This example shows conditional route advertisement based on route existence
      # and AS-path filtering for controlling routes based on AS number patterns.
        type: panos:BgpFilteringRoutingProfile
        name: ipv4_unicast_basic
        properties:
          location:
            template:
              name: ${bgpTemplate.name}
          name: ipv4-unicast-basic-filtering
          description: Basic IPv4 unicast filtering with prefix lists and route maps
          ipv4:
            unicast:
              inboundNetworkFilters:
                prefixList: ${ipv4InboundPrefix.name}
              outboundNetworkFilters:
                prefixList: ${ipv4OutboundPrefix.name}
              routeMaps:
                inbound: ${inboundRouteMap.name}
                outbound: ${outboundRouteMap.name}
      # Create route maps for conditional advertisement
      advertiseMap:
        type: panos:FiltersBgpRouteMapRoutingProfile
        name: advertise_map
        properties:
          location:
            template:
              name: ${bgpTemplate.name}
          name: advertise-map
          description: Routes to conditionally advertise
          routeMaps:
            - name: '10'
              action: permit
      existMap:
        type: panos:FiltersBgpRouteMapRoutingProfile
        name: exist_map
        properties:
          location:
            template:
              name: ${bgpTemplate.name}
          name: exist-map
          description: Routes that must exist for conditional advertisement
          routeMaps:
            - name: '10'
              action: permit
      # Create AS-path access lists for filtering
      asPathFilter:
        type: panos:FiltersAsPathAccessListRoutingProfile
        name: as_path_filter
        properties:
          location:
            template:
              name: ${bgpTemplate.name}
          name: as-path-filter
          description: Filter routes based on AS path
          aspathEntries:
            - name: '1'
              action: permit
              aspathRegex: ^65000_
            - name: '2'
              action: deny
              aspathRegex: _65001$
      # Create route map for unsuppressing routes
      unsuppressMap:
        type: panos:FiltersBgpRouteMapRoutingProfile
        name: unsuppress_map
        properties:
          location:
            template:
              name: ${bgpTemplate.name}
          name: unsuppress-map
          description: Routes to unsuppress
          routeMaps:
            - name: '10'
              action: permit
      # BGP Filtering Profile with conditional advertisement
      ipv4ConditionalAdv: # Example 3: IPv6 Unicast Filtering with Access Lists
      # This example demonstrates IPv6 filtering using access lists (distribute lists)
      # instead of prefix lists for network-based filtering.
        type: panos:BgpFilteringRoutingProfile
        name: ipv4_conditional_adv
        properties:
          location:
            template:
              name: ${bgpTemplate.name}
          name: ipv4-conditional-advertisement
          description: IPv4 filtering with conditional advertisement and AS-path filtering
          ipv4:
            unicast:
              conditionalAdvertisement:
                exist:
                  advertiseMap: ${advertiseMap.name}
                  existMap: ${existMap.name}
              filterList:
                inbound: ${asPathFilter.name}
              unsuppressMap: ${unsuppressMap.name}
      # Create IPv6 access lists
      ipv6InboundAcl:
        type: panos:FiltersAccessListRoutingProfile
        name: ipv6_inbound_acl
        properties:
          location:
            template:
              name: ${bgpTemplate.name}
          name: ipv6-inbound-acl
          description: Access list for incoming IPv6 routes
          type:
            ipv6:
              ipv6Entries:
                - name: '10'
                  action: permit
      ipv6OutboundAcl:
        type: panos:FiltersAccessListRoutingProfile
        name: ipv6_outbound_acl
        properties:
          location:
            template:
              name: ${bgpTemplate.name}
          name: ipv6-outbound-acl
          description: Access list for outgoing IPv6 routes
          type:
            ipv6:
              ipv6Entries:
                - name: '10'
                  action: permit
                - name: '20'
                  action: deny
      # Create AS-path access list for IPv6 (AS-path filters work for both IPv4 and IPv6)
      ipv6AsPath:
        type: panos:FiltersAsPathAccessListRoutingProfile
        name: ipv6_as_path
        properties:
          location:
            template:
              name: ${bgpTemplate.name}
          name: ipv6-as-path-filter
          description: AS-path filter for IPv6 routes
          aspathEntries:
            - name: '1'
              action: permit
              aspathRegex: ^64[0-9]{3}_
      # BGP Filtering Profile for IPv6
      ipv6UnicastFiltering:
        type: panos:BgpFilteringRoutingProfile
        name: ipv6_unicast_filtering
        properties:
          location:
            template:
              name: ${bgpTemplate.name}
          name: ipv6-unicast-filtering
          description: IPv6 unicast filtering with access lists and AS-path filtering
          ipv6:
            unicast:
              inboundNetworkFilters:
                distributeList: ${ipv6InboundAcl.name}
              outboundNetworkFilters:
                distributeList: ${ipv6OutboundAcl.name}
              filterList:
                inbound: ${ipv6AsPath.name}
                outbound: ${ipv6AsPath.name}
    

    Create BgpFilteringRoutingProfile Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new BgpFilteringRoutingProfile(name: string, args: BgpFilteringRoutingProfileArgs, opts?: CustomResourceOptions);
    @overload
    def BgpFilteringRoutingProfile(resource_name: str,
                                   args: BgpFilteringRoutingProfileArgs,
                                   opts: Optional[ResourceOptions] = None)
    
    @overload
    def BgpFilteringRoutingProfile(resource_name: str,
                                   opts: Optional[ResourceOptions] = None,
                                   location: Optional[BgpFilteringRoutingProfileLocationArgs] = None,
                                   description: Optional[str] = None,
                                   ipv4: Optional[BgpFilteringRoutingProfileIpv4Args] = None,
                                   ipv6: Optional[BgpFilteringRoutingProfileIpv6Args] = None,
                                   name: Optional[str] = None)
    func NewBgpFilteringRoutingProfile(ctx *Context, name string, args BgpFilteringRoutingProfileArgs, opts ...ResourceOption) (*BgpFilteringRoutingProfile, error)
    public BgpFilteringRoutingProfile(string name, BgpFilteringRoutingProfileArgs args, CustomResourceOptions? opts = null)
    public BgpFilteringRoutingProfile(String name, BgpFilteringRoutingProfileArgs args)
    public BgpFilteringRoutingProfile(String name, BgpFilteringRoutingProfileArgs args, CustomResourceOptions options)
    
    type: panos:BgpFilteringRoutingProfile
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args BgpFilteringRoutingProfileArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args BgpFilteringRoutingProfileArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args BgpFilteringRoutingProfileArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args BgpFilteringRoutingProfileArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args BgpFilteringRoutingProfileArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var bgpFilteringRoutingProfileResource = new Panos.BgpFilteringRoutingProfile("bgpFilteringRoutingProfileResource", new()
    {
        Location = new Panos.Inputs.BgpFilteringRoutingProfileLocationArgs
        {
            Ngfw = new Panos.Inputs.BgpFilteringRoutingProfileLocationNgfwArgs
            {
                NgfwDevice = "string",
            },
            Template = new Panos.Inputs.BgpFilteringRoutingProfileLocationTemplateArgs
            {
                Name = "string",
                NgfwDevice = "string",
                PanoramaDevice = "string",
            },
            TemplateStack = new Panos.Inputs.BgpFilteringRoutingProfileLocationTemplateStackArgs
            {
                Name = "string",
                NgfwDevice = "string",
                PanoramaDevice = "string",
            },
        },
        Description = "string",
        Ipv4 = new Panos.Inputs.BgpFilteringRoutingProfileIpv4Args
        {
            Multicast = new Panos.Inputs.BgpFilteringRoutingProfileIpv4MulticastArgs
            {
                ConditionalAdvertisement = new Panos.Inputs.BgpFilteringRoutingProfileIpv4MulticastConditionalAdvertisementArgs
                {
                    Exist = new Panos.Inputs.BgpFilteringRoutingProfileIpv4MulticastConditionalAdvertisementExistArgs
                    {
                        AdvertiseMap = "string",
                        ExistMap = "string",
                    },
                    NonExist = new Panos.Inputs.BgpFilteringRoutingProfileIpv4MulticastConditionalAdvertisementNonExistArgs
                    {
                        AdvertiseMap = "string",
                        NonExistMap = "string",
                    },
                },
                FilterList = new Panos.Inputs.BgpFilteringRoutingProfileIpv4MulticastFilterListArgs
                {
                    Inbound = "string",
                    Outbound = "string",
                },
                InboundNetworkFilters = new Panos.Inputs.BgpFilteringRoutingProfileIpv4MulticastInboundNetworkFiltersArgs
                {
                    DistributeList = "string",
                    PrefixList = "string",
                },
                Inherit = false,
                OutboundNetworkFilters = new Panos.Inputs.BgpFilteringRoutingProfileIpv4MulticastOutboundNetworkFiltersArgs
                {
                    DistributeList = "string",
                    PrefixList = "string",
                },
                RouteMaps = new Panos.Inputs.BgpFilteringRoutingProfileIpv4MulticastRouteMapsArgs
                {
                    Inbound = "string",
                    Outbound = "string",
                },
                UnsuppressMap = "string",
            },
            Unicast = new Panos.Inputs.BgpFilteringRoutingProfileIpv4UnicastArgs
            {
                ConditionalAdvertisement = new Panos.Inputs.BgpFilteringRoutingProfileIpv4UnicastConditionalAdvertisementArgs
                {
                    Exist = new Panos.Inputs.BgpFilteringRoutingProfileIpv4UnicastConditionalAdvertisementExistArgs
                    {
                        AdvertiseMap = "string",
                        ExistMap = "string",
                    },
                    NonExist = new Panos.Inputs.BgpFilteringRoutingProfileIpv4UnicastConditionalAdvertisementNonExistArgs
                    {
                        AdvertiseMap = "string",
                        NonExistMap = "string",
                    },
                },
                FilterList = new Panos.Inputs.BgpFilteringRoutingProfileIpv4UnicastFilterListArgs
                {
                    Inbound = "string",
                    Outbound = "string",
                },
                InboundNetworkFilters = new Panos.Inputs.BgpFilteringRoutingProfileIpv4UnicastInboundNetworkFiltersArgs
                {
                    DistributeList = "string",
                    PrefixList = "string",
                },
                OutboundNetworkFilters = new Panos.Inputs.BgpFilteringRoutingProfileIpv4UnicastOutboundNetworkFiltersArgs
                {
                    DistributeList = "string",
                    PrefixList = "string",
                },
                RouteMaps = new Panos.Inputs.BgpFilteringRoutingProfileIpv4UnicastRouteMapsArgs
                {
                    Inbound = "string",
                    Outbound = "string",
                },
                UnsuppressMap = "string",
            },
        },
        Ipv6 = new Panos.Inputs.BgpFilteringRoutingProfileIpv6Args
        {
            Unicast = new Panos.Inputs.BgpFilteringRoutingProfileIpv6UnicastArgs
            {
                ConditionalAdvertisement = new Panos.Inputs.BgpFilteringRoutingProfileIpv6UnicastConditionalAdvertisementArgs
                {
                    Exist = new Panos.Inputs.BgpFilteringRoutingProfileIpv6UnicastConditionalAdvertisementExistArgs
                    {
                        AdvertiseMap = "string",
                        ExistMap = "string",
                    },
                    NonExist = new Panos.Inputs.BgpFilteringRoutingProfileIpv6UnicastConditionalAdvertisementNonExistArgs
                    {
                        AdvertiseMap = "string",
                        NonExistMap = "string",
                    },
                },
                FilterList = new Panos.Inputs.BgpFilteringRoutingProfileIpv6UnicastFilterListArgs
                {
                    Inbound = "string",
                    Outbound = "string",
                },
                InboundNetworkFilters = new Panos.Inputs.BgpFilteringRoutingProfileIpv6UnicastInboundNetworkFiltersArgs
                {
                    DistributeList = "string",
                    PrefixList = "string",
                },
                OutboundNetworkFilters = new Panos.Inputs.BgpFilteringRoutingProfileIpv6UnicastOutboundNetworkFiltersArgs
                {
                    DistributeList = "string",
                    PrefixList = "string",
                },
                RouteMaps = new Panos.Inputs.BgpFilteringRoutingProfileIpv6UnicastRouteMapsArgs
                {
                    Inbound = "string",
                    Outbound = "string",
                },
                UnsuppressMap = "string",
            },
        },
        Name = "string",
    });
    
    example, err := panos.NewBgpFilteringRoutingProfile(ctx, "bgpFilteringRoutingProfileResource", &panos.BgpFilteringRoutingProfileArgs{
    	Location: &panos.BgpFilteringRoutingProfileLocationArgs{
    		Ngfw: &panos.BgpFilteringRoutingProfileLocationNgfwArgs{
    			NgfwDevice: pulumi.String("string"),
    		},
    		Template: &panos.BgpFilteringRoutingProfileLocationTemplateArgs{
    			Name:           pulumi.String("string"),
    			NgfwDevice:     pulumi.String("string"),
    			PanoramaDevice: pulumi.String("string"),
    		},
    		TemplateStack: &panos.BgpFilteringRoutingProfileLocationTemplateStackArgs{
    			Name:           pulumi.String("string"),
    			NgfwDevice:     pulumi.String("string"),
    			PanoramaDevice: pulumi.String("string"),
    		},
    	},
    	Description: pulumi.String("string"),
    	Ipv4: &panos.BgpFilteringRoutingProfileIpv4Args{
    		Multicast: &panos.BgpFilteringRoutingProfileIpv4MulticastArgs{
    			ConditionalAdvertisement: &panos.BgpFilteringRoutingProfileIpv4MulticastConditionalAdvertisementArgs{
    				Exist: &panos.BgpFilteringRoutingProfileIpv4MulticastConditionalAdvertisementExistArgs{
    					AdvertiseMap: pulumi.String("string"),
    					ExistMap:     pulumi.String("string"),
    				},
    				NonExist: &panos.BgpFilteringRoutingProfileIpv4MulticastConditionalAdvertisementNonExistArgs{
    					AdvertiseMap: pulumi.String("string"),
    					NonExistMap:  pulumi.String("string"),
    				},
    			},
    			FilterList: &panos.BgpFilteringRoutingProfileIpv4MulticastFilterListArgs{
    				Inbound:  pulumi.String("string"),
    				Outbound: pulumi.String("string"),
    			},
    			InboundNetworkFilters: &panos.BgpFilteringRoutingProfileIpv4MulticastInboundNetworkFiltersArgs{
    				DistributeList: pulumi.String("string"),
    				PrefixList:     pulumi.String("string"),
    			},
    			Inherit: pulumi.Bool(false),
    			OutboundNetworkFilters: &panos.BgpFilteringRoutingProfileIpv4MulticastOutboundNetworkFiltersArgs{
    				DistributeList: pulumi.String("string"),
    				PrefixList:     pulumi.String("string"),
    			},
    			RouteMaps: &panos.BgpFilteringRoutingProfileIpv4MulticastRouteMapsArgs{
    				Inbound:  pulumi.String("string"),
    				Outbound: pulumi.String("string"),
    			},
    			UnsuppressMap: pulumi.String("string"),
    		},
    		Unicast: &panos.BgpFilteringRoutingProfileIpv4UnicastArgs{
    			ConditionalAdvertisement: &panos.BgpFilteringRoutingProfileIpv4UnicastConditionalAdvertisementArgs{
    				Exist: &panos.BgpFilteringRoutingProfileIpv4UnicastConditionalAdvertisementExistArgs{
    					AdvertiseMap: pulumi.String("string"),
    					ExistMap:     pulumi.String("string"),
    				},
    				NonExist: &panos.BgpFilteringRoutingProfileIpv4UnicastConditionalAdvertisementNonExistArgs{
    					AdvertiseMap: pulumi.String("string"),
    					NonExistMap:  pulumi.String("string"),
    				},
    			},
    			FilterList: &panos.BgpFilteringRoutingProfileIpv4UnicastFilterListArgs{
    				Inbound:  pulumi.String("string"),
    				Outbound: pulumi.String("string"),
    			},
    			InboundNetworkFilters: &panos.BgpFilteringRoutingProfileIpv4UnicastInboundNetworkFiltersArgs{
    				DistributeList: pulumi.String("string"),
    				PrefixList:     pulumi.String("string"),
    			},
    			OutboundNetworkFilters: &panos.BgpFilteringRoutingProfileIpv4UnicastOutboundNetworkFiltersArgs{
    				DistributeList: pulumi.String("string"),
    				PrefixList:     pulumi.String("string"),
    			},
    			RouteMaps: &panos.BgpFilteringRoutingProfileIpv4UnicastRouteMapsArgs{
    				Inbound:  pulumi.String("string"),
    				Outbound: pulumi.String("string"),
    			},
    			UnsuppressMap: pulumi.String("string"),
    		},
    	},
    	Ipv6: &panos.BgpFilteringRoutingProfileIpv6Args{
    		Unicast: &panos.BgpFilteringRoutingProfileIpv6UnicastArgs{
    			ConditionalAdvertisement: &panos.BgpFilteringRoutingProfileIpv6UnicastConditionalAdvertisementArgs{
    				Exist: &panos.BgpFilteringRoutingProfileIpv6UnicastConditionalAdvertisementExistArgs{
    					AdvertiseMap: pulumi.String("string"),
    					ExistMap:     pulumi.String("string"),
    				},
    				NonExist: &panos.BgpFilteringRoutingProfileIpv6UnicastConditionalAdvertisementNonExistArgs{
    					AdvertiseMap: pulumi.String("string"),
    					NonExistMap:  pulumi.String("string"),
    				},
    			},
    			FilterList: &panos.BgpFilteringRoutingProfileIpv6UnicastFilterListArgs{
    				Inbound:  pulumi.String("string"),
    				Outbound: pulumi.String("string"),
    			},
    			InboundNetworkFilters: &panos.BgpFilteringRoutingProfileIpv6UnicastInboundNetworkFiltersArgs{
    				DistributeList: pulumi.String("string"),
    				PrefixList:     pulumi.String("string"),
    			},
    			OutboundNetworkFilters: &panos.BgpFilteringRoutingProfileIpv6UnicastOutboundNetworkFiltersArgs{
    				DistributeList: pulumi.String("string"),
    				PrefixList:     pulumi.String("string"),
    			},
    			RouteMaps: &panos.BgpFilteringRoutingProfileIpv6UnicastRouteMapsArgs{
    				Inbound:  pulumi.String("string"),
    				Outbound: pulumi.String("string"),
    			},
    			UnsuppressMap: pulumi.String("string"),
    		},
    	},
    	Name: pulumi.String("string"),
    })
    
    var bgpFilteringRoutingProfileResource = new BgpFilteringRoutingProfile("bgpFilteringRoutingProfileResource", BgpFilteringRoutingProfileArgs.builder()
        .location(BgpFilteringRoutingProfileLocationArgs.builder()
            .ngfw(BgpFilteringRoutingProfileLocationNgfwArgs.builder()
                .ngfwDevice("string")
                .build())
            .template(BgpFilteringRoutingProfileLocationTemplateArgs.builder()
                .name("string")
                .ngfwDevice("string")
                .panoramaDevice("string")
                .build())
            .templateStack(BgpFilteringRoutingProfileLocationTemplateStackArgs.builder()
                .name("string")
                .ngfwDevice("string")
                .panoramaDevice("string")
                .build())
            .build())
        .description("string")
        .ipv4(BgpFilteringRoutingProfileIpv4Args.builder()
            .multicast(BgpFilteringRoutingProfileIpv4MulticastArgs.builder()
                .conditionalAdvertisement(BgpFilteringRoutingProfileIpv4MulticastConditionalAdvertisementArgs.builder()
                    .exist(BgpFilteringRoutingProfileIpv4MulticastConditionalAdvertisementExistArgs.builder()
                        .advertiseMap("string")
                        .existMap("string")
                        .build())
                    .nonExist(BgpFilteringRoutingProfileIpv4MulticastConditionalAdvertisementNonExistArgs.builder()
                        .advertiseMap("string")
                        .nonExistMap("string")
                        .build())
                    .build())
                .filterList(BgpFilteringRoutingProfileIpv4MulticastFilterListArgs.builder()
                    .inbound("string")
                    .outbound("string")
                    .build())
                .inboundNetworkFilters(BgpFilteringRoutingProfileIpv4MulticastInboundNetworkFiltersArgs.builder()
                    .distributeList("string")
                    .prefixList("string")
                    .build())
                .inherit(false)
                .outboundNetworkFilters(BgpFilteringRoutingProfileIpv4MulticastOutboundNetworkFiltersArgs.builder()
                    .distributeList("string")
                    .prefixList("string")
                    .build())
                .routeMaps(BgpFilteringRoutingProfileIpv4MulticastRouteMapsArgs.builder()
                    .inbound("string")
                    .outbound("string")
                    .build())
                .unsuppressMap("string")
                .build())
            .unicast(BgpFilteringRoutingProfileIpv4UnicastArgs.builder()
                .conditionalAdvertisement(BgpFilteringRoutingProfileIpv4UnicastConditionalAdvertisementArgs.builder()
                    .exist(BgpFilteringRoutingProfileIpv4UnicastConditionalAdvertisementExistArgs.builder()
                        .advertiseMap("string")
                        .existMap("string")
                        .build())
                    .nonExist(BgpFilteringRoutingProfileIpv4UnicastConditionalAdvertisementNonExistArgs.builder()
                        .advertiseMap("string")
                        .nonExistMap("string")
                        .build())
                    .build())
                .filterList(BgpFilteringRoutingProfileIpv4UnicastFilterListArgs.builder()
                    .inbound("string")
                    .outbound("string")
                    .build())
                .inboundNetworkFilters(BgpFilteringRoutingProfileIpv4UnicastInboundNetworkFiltersArgs.builder()
                    .distributeList("string")
                    .prefixList("string")
                    .build())
                .outboundNetworkFilters(BgpFilteringRoutingProfileIpv4UnicastOutboundNetworkFiltersArgs.builder()
                    .distributeList("string")
                    .prefixList("string")
                    .build())
                .routeMaps(BgpFilteringRoutingProfileIpv4UnicastRouteMapsArgs.builder()
                    .inbound("string")
                    .outbound("string")
                    .build())
                .unsuppressMap("string")
                .build())
            .build())
        .ipv6(BgpFilteringRoutingProfileIpv6Args.builder()
            .unicast(BgpFilteringRoutingProfileIpv6UnicastArgs.builder()
                .conditionalAdvertisement(BgpFilteringRoutingProfileIpv6UnicastConditionalAdvertisementArgs.builder()
                    .exist(BgpFilteringRoutingProfileIpv6UnicastConditionalAdvertisementExistArgs.builder()
                        .advertiseMap("string")
                        .existMap("string")
                        .build())
                    .nonExist(BgpFilteringRoutingProfileIpv6UnicastConditionalAdvertisementNonExistArgs.builder()
                        .advertiseMap("string")
                        .nonExistMap("string")
                        .build())
                    .build())
                .filterList(BgpFilteringRoutingProfileIpv6UnicastFilterListArgs.builder()
                    .inbound("string")
                    .outbound("string")
                    .build())
                .inboundNetworkFilters(BgpFilteringRoutingProfileIpv6UnicastInboundNetworkFiltersArgs.builder()
                    .distributeList("string")
                    .prefixList("string")
                    .build())
                .outboundNetworkFilters(BgpFilteringRoutingProfileIpv6UnicastOutboundNetworkFiltersArgs.builder()
                    .distributeList("string")
                    .prefixList("string")
                    .build())
                .routeMaps(BgpFilteringRoutingProfileIpv6UnicastRouteMapsArgs.builder()
                    .inbound("string")
                    .outbound("string")
                    .build())
                .unsuppressMap("string")
                .build())
            .build())
        .name("string")
        .build());
    
    bgp_filtering_routing_profile_resource = panos.BgpFilteringRoutingProfile("bgpFilteringRoutingProfileResource",
        location={
            "ngfw": {
                "ngfw_device": "string",
            },
            "template": {
                "name": "string",
                "ngfw_device": "string",
                "panorama_device": "string",
            },
            "template_stack": {
                "name": "string",
                "ngfw_device": "string",
                "panorama_device": "string",
            },
        },
        description="string",
        ipv4={
            "multicast": {
                "conditional_advertisement": {
                    "exist": {
                        "advertise_map": "string",
                        "exist_map": "string",
                    },
                    "non_exist": {
                        "advertise_map": "string",
                        "non_exist_map": "string",
                    },
                },
                "filter_list": {
                    "inbound": "string",
                    "outbound": "string",
                },
                "inbound_network_filters": {
                    "distribute_list": "string",
                    "prefix_list": "string",
                },
                "inherit": False,
                "outbound_network_filters": {
                    "distribute_list": "string",
                    "prefix_list": "string",
                },
                "route_maps": {
                    "inbound": "string",
                    "outbound": "string",
                },
                "unsuppress_map": "string",
            },
            "unicast": {
                "conditional_advertisement": {
                    "exist": {
                        "advertise_map": "string",
                        "exist_map": "string",
                    },
                    "non_exist": {
                        "advertise_map": "string",
                        "non_exist_map": "string",
                    },
                },
                "filter_list": {
                    "inbound": "string",
                    "outbound": "string",
                },
                "inbound_network_filters": {
                    "distribute_list": "string",
                    "prefix_list": "string",
                },
                "outbound_network_filters": {
                    "distribute_list": "string",
                    "prefix_list": "string",
                },
                "route_maps": {
                    "inbound": "string",
                    "outbound": "string",
                },
                "unsuppress_map": "string",
            },
        },
        ipv6={
            "unicast": {
                "conditional_advertisement": {
                    "exist": {
                        "advertise_map": "string",
                        "exist_map": "string",
                    },
                    "non_exist": {
                        "advertise_map": "string",
                        "non_exist_map": "string",
                    },
                },
                "filter_list": {
                    "inbound": "string",
                    "outbound": "string",
                },
                "inbound_network_filters": {
                    "distribute_list": "string",
                    "prefix_list": "string",
                },
                "outbound_network_filters": {
                    "distribute_list": "string",
                    "prefix_list": "string",
                },
                "route_maps": {
                    "inbound": "string",
                    "outbound": "string",
                },
                "unsuppress_map": "string",
            },
        },
        name="string")
    
    const bgpFilteringRoutingProfileResource = new panos.BgpFilteringRoutingProfile("bgpFilteringRoutingProfileResource", {
        location: {
            ngfw: {
                ngfwDevice: "string",
            },
            template: {
                name: "string",
                ngfwDevice: "string",
                panoramaDevice: "string",
            },
            templateStack: {
                name: "string",
                ngfwDevice: "string",
                panoramaDevice: "string",
            },
        },
        description: "string",
        ipv4: {
            multicast: {
                conditionalAdvertisement: {
                    exist: {
                        advertiseMap: "string",
                        existMap: "string",
                    },
                    nonExist: {
                        advertiseMap: "string",
                        nonExistMap: "string",
                    },
                },
                filterList: {
                    inbound: "string",
                    outbound: "string",
                },
                inboundNetworkFilters: {
                    distributeList: "string",
                    prefixList: "string",
                },
                inherit: false,
                outboundNetworkFilters: {
                    distributeList: "string",
                    prefixList: "string",
                },
                routeMaps: {
                    inbound: "string",
                    outbound: "string",
                },
                unsuppressMap: "string",
            },
            unicast: {
                conditionalAdvertisement: {
                    exist: {
                        advertiseMap: "string",
                        existMap: "string",
                    },
                    nonExist: {
                        advertiseMap: "string",
                        nonExistMap: "string",
                    },
                },
                filterList: {
                    inbound: "string",
                    outbound: "string",
                },
                inboundNetworkFilters: {
                    distributeList: "string",
                    prefixList: "string",
                },
                outboundNetworkFilters: {
                    distributeList: "string",
                    prefixList: "string",
                },
                routeMaps: {
                    inbound: "string",
                    outbound: "string",
                },
                unsuppressMap: "string",
            },
        },
        ipv6: {
            unicast: {
                conditionalAdvertisement: {
                    exist: {
                        advertiseMap: "string",
                        existMap: "string",
                    },
                    nonExist: {
                        advertiseMap: "string",
                        nonExistMap: "string",
                    },
                },
                filterList: {
                    inbound: "string",
                    outbound: "string",
                },
                inboundNetworkFilters: {
                    distributeList: "string",
                    prefixList: "string",
                },
                outboundNetworkFilters: {
                    distributeList: "string",
                    prefixList: "string",
                },
                routeMaps: {
                    inbound: "string",
                    outbound: "string",
                },
                unsuppressMap: "string",
            },
        },
        name: "string",
    });
    
    type: panos:BgpFilteringRoutingProfile
    properties:
        description: string
        ipv4:
            multicast:
                conditionalAdvertisement:
                    exist:
                        advertiseMap: string
                        existMap: string
                    nonExist:
                        advertiseMap: string
                        nonExistMap: string
                filterList:
                    inbound: string
                    outbound: string
                inboundNetworkFilters:
                    distributeList: string
                    prefixList: string
                inherit: false
                outboundNetworkFilters:
                    distributeList: string
                    prefixList: string
                routeMaps:
                    inbound: string
                    outbound: string
                unsuppressMap: string
            unicast:
                conditionalAdvertisement:
                    exist:
                        advertiseMap: string
                        existMap: string
                    nonExist:
                        advertiseMap: string
                        nonExistMap: string
                filterList:
                    inbound: string
                    outbound: string
                inboundNetworkFilters:
                    distributeList: string
                    prefixList: string
                outboundNetworkFilters:
                    distributeList: string
                    prefixList: string
                routeMaps:
                    inbound: string
                    outbound: string
                unsuppressMap: string
        ipv6:
            unicast:
                conditionalAdvertisement:
                    exist:
                        advertiseMap: string
                        existMap: string
                    nonExist:
                        advertiseMap: string
                        nonExistMap: string
                filterList:
                    inbound: string
                    outbound: string
                inboundNetworkFilters:
                    distributeList: string
                    prefixList: string
                outboundNetworkFilters:
                    distributeList: string
                    prefixList: string
                routeMaps:
                    inbound: string
                    outbound: string
                unsuppressMap: string
        location:
            ngfw:
                ngfwDevice: string
            template:
                name: string
                ngfwDevice: string
                panoramaDevice: string
            templateStack:
                name: string
                ngfwDevice: string
                panoramaDevice: string
        name: string
    

    BgpFilteringRoutingProfile Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The BgpFilteringRoutingProfile resource accepts the following input properties:

    location Property Map
    The location of this object.
    description String
    Describe BGP Filtering Profile
    ipv4 Property Map
    ipv6 Property Map
    name String

    Outputs

    All input properties are implicitly available as output properties. Additionally, the BgpFilteringRoutingProfile resource produces the following output properties:

    Id string
    The provider-assigned unique ID for this managed resource.
    Id string
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.
    id string
    The provider-assigned unique ID for this managed resource.
    id str
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.

    Look up Existing BgpFilteringRoutingProfile Resource

    Get an existing BgpFilteringRoutingProfile resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: BgpFilteringRoutingProfileState, opts?: CustomResourceOptions): BgpFilteringRoutingProfile
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            description: Optional[str] = None,
            ipv4: Optional[BgpFilteringRoutingProfileIpv4Args] = None,
            ipv6: Optional[BgpFilteringRoutingProfileIpv6Args] = None,
            location: Optional[BgpFilteringRoutingProfileLocationArgs] = None,
            name: Optional[str] = None) -> BgpFilteringRoutingProfile
    func GetBgpFilteringRoutingProfile(ctx *Context, name string, id IDInput, state *BgpFilteringRoutingProfileState, opts ...ResourceOption) (*BgpFilteringRoutingProfile, error)
    public static BgpFilteringRoutingProfile Get(string name, Input<string> id, BgpFilteringRoutingProfileState? state, CustomResourceOptions? opts = null)
    public static BgpFilteringRoutingProfile get(String name, Output<String> id, BgpFilteringRoutingProfileState state, CustomResourceOptions options)
    resources:  _:    type: panos:BgpFilteringRoutingProfile    get:      id: ${id}
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    description String
    Describe BGP Filtering Profile
    ipv4 Property Map
    ipv6 Property Map
    location Property Map
    The location of this object.
    name String

    Supporting Types

    BgpFilteringRoutingProfileIpv4, BgpFilteringRoutingProfileIpv4Args

    BgpFilteringRoutingProfileIpv4Multicast, BgpFilteringRoutingProfileIpv4MulticastArgs

    conditionalAdvertisement Property Map
    filterList Property Map
    inboundNetworkFilters Property Map
    inherit Boolean
    Either Configure or Inherit Filtering Profile from Unicast
    outboundNetworkFilters Property Map
    routeMaps Property Map
    unsuppressMap String
    Route-Map selectively unsuppress suppressed routes

    BgpFilteringRoutingProfileIpv4MulticastConditionalAdvertisement, BgpFilteringRoutingProfileIpv4MulticastConditionalAdvertisementArgs

    BgpFilteringRoutingProfileIpv4MulticastConditionalAdvertisementExist, BgpFilteringRoutingProfileIpv4MulticastConditionalAdvertisementExistArgs

    AdvertiseMap string
    Specify Route-Map match criteria to advertise routes
    ExistMap string
    Specify Route-Map to Match existing routes in BGP local-rib
    AdvertiseMap string
    Specify Route-Map match criteria to advertise routes
    ExistMap string
    Specify Route-Map to Match existing routes in BGP local-rib
    advertiseMap String
    Specify Route-Map match criteria to advertise routes
    existMap String
    Specify Route-Map to Match existing routes in BGP local-rib
    advertiseMap string
    Specify Route-Map match criteria to advertise routes
    existMap string
    Specify Route-Map to Match existing routes in BGP local-rib
    str
    Specify Route-Map match criteria to advertise routes
    exist_map str
    Specify Route-Map to Match existing routes in BGP local-rib
    advertiseMap String
    Specify Route-Map match criteria to advertise routes
    existMap String
    Specify Route-Map to Match existing routes in BGP local-rib

    BgpFilteringRoutingProfileIpv4MulticastConditionalAdvertisementNonExist, BgpFilteringRoutingProfileIpv4MulticastConditionalAdvertisementNonExistArgs

    AdvertiseMap string
    Specify Route-Map match criteria to advertise routes
    NonExistMap string
    Specify Route-Map to match non-existing routes in BGP local-rib
    AdvertiseMap string
    Specify Route-Map match criteria to advertise routes
    NonExistMap string
    Specify Route-Map to match non-existing routes in BGP local-rib
    advertiseMap String
    Specify Route-Map match criteria to advertise routes
    nonExistMap String
    Specify Route-Map to match non-existing routes in BGP local-rib
    advertiseMap string
    Specify Route-Map match criteria to advertise routes
    nonExistMap string
    Specify Route-Map to match non-existing routes in BGP local-rib
    str
    Specify Route-Map match criteria to advertise routes
    non_exist_map str
    Specify Route-Map to match non-existing routes in BGP local-rib
    advertiseMap String
    Specify Route-Map match criteria to advertise routes
    nonExistMap String
    Specify Route-Map to match non-existing routes in BGP local-rib

    BgpFilteringRoutingProfileIpv4MulticastFilterList, BgpFilteringRoutingProfileIpv4MulticastFilterListArgs

    Inbound string
    Incoming AS-Path Access-List
    Outbound string
    Outgoing AS-Path Access-List
    Inbound string
    Incoming AS-Path Access-List
    Outbound string
    Outgoing AS-Path Access-List
    inbound String
    Incoming AS-Path Access-List
    outbound String
    Outgoing AS-Path Access-List
    inbound string
    Incoming AS-Path Access-List
    outbound string
    Outgoing AS-Path Access-List
    inbound str
    Incoming AS-Path Access-List
    outbound str
    Outgoing AS-Path Access-List
    inbound String
    Incoming AS-Path Access-List
    outbound String
    Outgoing AS-Path Access-List

    BgpFilteringRoutingProfileIpv4MulticastInboundNetworkFilters, BgpFilteringRoutingProfileIpv4MulticastInboundNetworkFiltersArgs

    DistributeList string
    Incoming Distribute-List (Access-List)
    PrefixList string
    Incoming Prefix-List
    DistributeList string
    Incoming Distribute-List (Access-List)
    PrefixList string
    Incoming Prefix-List
    distributeList String
    Incoming Distribute-List (Access-List)
    prefixList String
    Incoming Prefix-List
    distributeList string
    Incoming Distribute-List (Access-List)
    prefixList string
    Incoming Prefix-List
    distribute_list str
    Incoming Distribute-List (Access-List)
    prefix_list str
    Incoming Prefix-List
    distributeList String
    Incoming Distribute-List (Access-List)
    prefixList String
    Incoming Prefix-List

    BgpFilteringRoutingProfileIpv4MulticastOutboundNetworkFilters, BgpFilteringRoutingProfileIpv4MulticastOutboundNetworkFiltersArgs

    DistributeList string
    Outgoing Distribute-List (Access-List)
    PrefixList string
    Outgoing Prefix-List
    DistributeList string
    Outgoing Distribute-List (Access-List)
    PrefixList string
    Outgoing Prefix-List
    distributeList String
    Outgoing Distribute-List (Access-List)
    prefixList String
    Outgoing Prefix-List
    distributeList string
    Outgoing Distribute-List (Access-List)
    prefixList string
    Outgoing Prefix-List
    distribute_list str
    Outgoing Distribute-List (Access-List)
    prefix_list str
    Outgoing Prefix-List
    distributeList String
    Outgoing Distribute-List (Access-List)
    prefixList String
    Outgoing Prefix-List

    BgpFilteringRoutingProfileIpv4MulticastRouteMaps, BgpFilteringRoutingProfileIpv4MulticastRouteMapsArgs

    Inbound string
    Incoming Route-Map
    Outbound string
    Outgoing Route-Map
    Inbound string
    Incoming Route-Map
    Outbound string
    Outgoing Route-Map
    inbound String
    Incoming Route-Map
    outbound String
    Outgoing Route-Map
    inbound string
    Incoming Route-Map
    outbound string
    Outgoing Route-Map
    inbound str
    Incoming Route-Map
    outbound str
    Outgoing Route-Map
    inbound String
    Incoming Route-Map
    outbound String
    Outgoing Route-Map

    BgpFilteringRoutingProfileIpv4Unicast, BgpFilteringRoutingProfileIpv4UnicastArgs

    BgpFilteringRoutingProfileIpv4UnicastConditionalAdvertisement, BgpFilteringRoutingProfileIpv4UnicastConditionalAdvertisementArgs

    BgpFilteringRoutingProfileIpv4UnicastConditionalAdvertisementExist, BgpFilteringRoutingProfileIpv4UnicastConditionalAdvertisementExistArgs

    AdvertiseMap string
    Specify Route-Map match criteria to advertise routes
    ExistMap string
    Specify Route-Map to Match existing routes in BGP local-rib
    AdvertiseMap string
    Specify Route-Map match criteria to advertise routes
    ExistMap string
    Specify Route-Map to Match existing routes in BGP local-rib
    advertiseMap String
    Specify Route-Map match criteria to advertise routes
    existMap String
    Specify Route-Map to Match existing routes in BGP local-rib
    advertiseMap string
    Specify Route-Map match criteria to advertise routes
    existMap string
    Specify Route-Map to Match existing routes in BGP local-rib
    str
    Specify Route-Map match criteria to advertise routes
    exist_map str
    Specify Route-Map to Match existing routes in BGP local-rib
    advertiseMap String
    Specify Route-Map match criteria to advertise routes
    existMap String
    Specify Route-Map to Match existing routes in BGP local-rib

    BgpFilteringRoutingProfileIpv4UnicastConditionalAdvertisementNonExist, BgpFilteringRoutingProfileIpv4UnicastConditionalAdvertisementNonExistArgs

    AdvertiseMap string
    Specify Route-Map match criteria to advertise routes
    NonExistMap string
    Specify Route-Map to match non-existing routes in BGP local-rib
    AdvertiseMap string
    Specify Route-Map match criteria to advertise routes
    NonExistMap string
    Specify Route-Map to match non-existing routes in BGP local-rib
    advertiseMap String
    Specify Route-Map match criteria to advertise routes
    nonExistMap String
    Specify Route-Map to match non-existing routes in BGP local-rib
    advertiseMap string
    Specify Route-Map match criteria to advertise routes
    nonExistMap string
    Specify Route-Map to match non-existing routes in BGP local-rib
    str
    Specify Route-Map match criteria to advertise routes
    non_exist_map str
    Specify Route-Map to match non-existing routes in BGP local-rib
    advertiseMap String
    Specify Route-Map match criteria to advertise routes
    nonExistMap String
    Specify Route-Map to match non-existing routes in BGP local-rib

    BgpFilteringRoutingProfileIpv4UnicastFilterList, BgpFilteringRoutingProfileIpv4UnicastFilterListArgs

    Inbound string
    Incoming AS-Path Access-List
    Outbound string
    Outgoing AS-Path Access-List
    Inbound string
    Incoming AS-Path Access-List
    Outbound string
    Outgoing AS-Path Access-List
    inbound String
    Incoming AS-Path Access-List
    outbound String
    Outgoing AS-Path Access-List
    inbound string
    Incoming AS-Path Access-List
    outbound string
    Outgoing AS-Path Access-List
    inbound str
    Incoming AS-Path Access-List
    outbound str
    Outgoing AS-Path Access-List
    inbound String
    Incoming AS-Path Access-List
    outbound String
    Outgoing AS-Path Access-List

    BgpFilteringRoutingProfileIpv4UnicastInboundNetworkFilters, BgpFilteringRoutingProfileIpv4UnicastInboundNetworkFiltersArgs

    DistributeList string
    Incoming Distribute-List (Access-List)
    PrefixList string
    Incoming Prefix-List
    DistributeList string
    Incoming Distribute-List (Access-List)
    PrefixList string
    Incoming Prefix-List
    distributeList String
    Incoming Distribute-List (Access-List)
    prefixList String
    Incoming Prefix-List
    distributeList string
    Incoming Distribute-List (Access-List)
    prefixList string
    Incoming Prefix-List
    distribute_list str
    Incoming Distribute-List (Access-List)
    prefix_list str
    Incoming Prefix-List
    distributeList String
    Incoming Distribute-List (Access-List)
    prefixList String
    Incoming Prefix-List

    BgpFilteringRoutingProfileIpv4UnicastOutboundNetworkFilters, BgpFilteringRoutingProfileIpv4UnicastOutboundNetworkFiltersArgs

    DistributeList string
    Outgoing Distribute-List (Access-List)
    PrefixList string
    Outgoing Prefix-List
    DistributeList string
    Outgoing Distribute-List (Access-List)
    PrefixList string
    Outgoing Prefix-List
    distributeList String
    Outgoing Distribute-List (Access-List)
    prefixList String
    Outgoing Prefix-List
    distributeList string
    Outgoing Distribute-List (Access-List)
    prefixList string
    Outgoing Prefix-List
    distribute_list str
    Outgoing Distribute-List (Access-List)
    prefix_list str
    Outgoing Prefix-List
    distributeList String
    Outgoing Distribute-List (Access-List)
    prefixList String
    Outgoing Prefix-List

    BgpFilteringRoutingProfileIpv4UnicastRouteMaps, BgpFilteringRoutingProfileIpv4UnicastRouteMapsArgs

    Inbound string
    Incoming Route-Map
    Outbound string
    Outgoing Route-Map
    Inbound string
    Incoming Route-Map
    Outbound string
    Outgoing Route-Map
    inbound String
    Incoming Route-Map
    outbound String
    Outgoing Route-Map
    inbound string
    Incoming Route-Map
    outbound string
    Outgoing Route-Map
    inbound str
    Incoming Route-Map
    outbound str
    Outgoing Route-Map
    inbound String
    Incoming Route-Map
    outbound String
    Outgoing Route-Map

    BgpFilteringRoutingProfileIpv6, BgpFilteringRoutingProfileIpv6Args

    BgpFilteringRoutingProfileIpv6Unicast, BgpFilteringRoutingProfileIpv6UnicastArgs

    BgpFilteringRoutingProfileIpv6UnicastConditionalAdvertisement, BgpFilteringRoutingProfileIpv6UnicastConditionalAdvertisementArgs

    BgpFilteringRoutingProfileIpv6UnicastConditionalAdvertisementExist, BgpFilteringRoutingProfileIpv6UnicastConditionalAdvertisementExistArgs

    AdvertiseMap string
    Specify Route-Map match criteria to advertise routes
    ExistMap string
    Specify Route-Map to Match existing routes in BGP local-rib
    AdvertiseMap string
    Specify Route-Map match criteria to advertise routes
    ExistMap string
    Specify Route-Map to Match existing routes in BGP local-rib
    advertiseMap String
    Specify Route-Map match criteria to advertise routes
    existMap String
    Specify Route-Map to Match existing routes in BGP local-rib
    advertiseMap string
    Specify Route-Map match criteria to advertise routes
    existMap string
    Specify Route-Map to Match existing routes in BGP local-rib
    str
    Specify Route-Map match criteria to advertise routes
    exist_map str
    Specify Route-Map to Match existing routes in BGP local-rib
    advertiseMap String
    Specify Route-Map match criteria to advertise routes
    existMap String
    Specify Route-Map to Match existing routes in BGP local-rib

    BgpFilteringRoutingProfileIpv6UnicastConditionalAdvertisementNonExist, BgpFilteringRoutingProfileIpv6UnicastConditionalAdvertisementNonExistArgs

    AdvertiseMap string
    Specify Route-Map match criteria to advertise routes
    NonExistMap string
    Specify Route-Map to match non-existing routes in BGP local-rib
    AdvertiseMap string
    Specify Route-Map match criteria to advertise routes
    NonExistMap string
    Specify Route-Map to match non-existing routes in BGP local-rib
    advertiseMap String
    Specify Route-Map match criteria to advertise routes
    nonExistMap String
    Specify Route-Map to match non-existing routes in BGP local-rib
    advertiseMap string
    Specify Route-Map match criteria to advertise routes
    nonExistMap string
    Specify Route-Map to match non-existing routes in BGP local-rib
    str
    Specify Route-Map match criteria to advertise routes
    non_exist_map str
    Specify Route-Map to match non-existing routes in BGP local-rib
    advertiseMap String
    Specify Route-Map match criteria to advertise routes
    nonExistMap String
    Specify Route-Map to match non-existing routes in BGP local-rib

    BgpFilteringRoutingProfileIpv6UnicastFilterList, BgpFilteringRoutingProfileIpv6UnicastFilterListArgs

    Inbound string
    Incoming AS-Path Access-List
    Outbound string
    Outgoing AS-Path Access-List
    Inbound string
    Incoming AS-Path Access-List
    Outbound string
    Outgoing AS-Path Access-List
    inbound String
    Incoming AS-Path Access-List
    outbound String
    Outgoing AS-Path Access-List
    inbound string
    Incoming AS-Path Access-List
    outbound string
    Outgoing AS-Path Access-List
    inbound str
    Incoming AS-Path Access-List
    outbound str
    Outgoing AS-Path Access-List
    inbound String
    Incoming AS-Path Access-List
    outbound String
    Outgoing AS-Path Access-List

    BgpFilteringRoutingProfileIpv6UnicastInboundNetworkFilters, BgpFilteringRoutingProfileIpv6UnicastInboundNetworkFiltersArgs

    DistributeList string
    Incoming Distribute-List (Access-List)
    PrefixList string
    Incoming Prefix-List
    DistributeList string
    Incoming Distribute-List (Access-List)
    PrefixList string
    Incoming Prefix-List
    distributeList String
    Incoming Distribute-List (Access-List)
    prefixList String
    Incoming Prefix-List
    distributeList string
    Incoming Distribute-List (Access-List)
    prefixList string
    Incoming Prefix-List
    distribute_list str
    Incoming Distribute-List (Access-List)
    prefix_list str
    Incoming Prefix-List
    distributeList String
    Incoming Distribute-List (Access-List)
    prefixList String
    Incoming Prefix-List

    BgpFilteringRoutingProfileIpv6UnicastOutboundNetworkFilters, BgpFilteringRoutingProfileIpv6UnicastOutboundNetworkFiltersArgs

    DistributeList string
    Outgoing Distribute-List (Access-List)
    PrefixList string
    Outgoing Prefix-List
    DistributeList string
    Outgoing Distribute-List (Access-List)
    PrefixList string
    Outgoing Prefix-List
    distributeList String
    Outgoing Distribute-List (Access-List)
    prefixList String
    Outgoing Prefix-List
    distributeList string
    Outgoing Distribute-List (Access-List)
    prefixList string
    Outgoing Prefix-List
    distribute_list str
    Outgoing Distribute-List (Access-List)
    prefix_list str
    Outgoing Prefix-List
    distributeList String
    Outgoing Distribute-List (Access-List)
    prefixList String
    Outgoing Prefix-List

    BgpFilteringRoutingProfileIpv6UnicastRouteMaps, BgpFilteringRoutingProfileIpv6UnicastRouteMapsArgs

    Inbound string
    Incoming Route-Map
    Outbound string
    Outgoing Route-Map
    Inbound string
    Incoming Route-Map
    Outbound string
    Outgoing Route-Map
    inbound String
    Incoming Route-Map
    outbound String
    Outgoing Route-Map
    inbound string
    Incoming Route-Map
    outbound string
    Outgoing Route-Map
    inbound str
    Incoming Route-Map
    outbound str
    Outgoing Route-Map
    inbound String
    Incoming Route-Map
    outbound String
    Outgoing Route-Map

    BgpFilteringRoutingProfileLocation, BgpFilteringRoutingProfileLocationArgs

    Ngfw BgpFilteringRoutingProfileLocationNgfw
    Located in a specific NGFW device
    Template BgpFilteringRoutingProfileLocationTemplate
    Located in a specific template
    TemplateStack BgpFilteringRoutingProfileLocationTemplateStack
    Located in a specific template stack
    Ngfw BgpFilteringRoutingProfileLocationNgfw
    Located in a specific NGFW device
    Template BgpFilteringRoutingProfileLocationTemplate
    Located in a specific template
    TemplateStack BgpFilteringRoutingProfileLocationTemplateStack
    Located in a specific template stack
    ngfw BgpFilteringRoutingProfileLocationNgfw
    Located in a specific NGFW device
    template BgpFilteringRoutingProfileLocationTemplate
    Located in a specific template
    templateStack BgpFilteringRoutingProfileLocationTemplateStack
    Located in a specific template stack
    ngfw BgpFilteringRoutingProfileLocationNgfw
    Located in a specific NGFW device
    template BgpFilteringRoutingProfileLocationTemplate
    Located in a specific template
    templateStack BgpFilteringRoutingProfileLocationTemplateStack
    Located in a specific template stack
    ngfw BgpFilteringRoutingProfileLocationNgfw
    Located in a specific NGFW device
    template BgpFilteringRoutingProfileLocationTemplate
    Located in a specific template
    template_stack BgpFilteringRoutingProfileLocationTemplateStack
    Located in a specific template stack
    ngfw Property Map
    Located in a specific NGFW device
    template Property Map
    Located in a specific template
    templateStack Property Map
    Located in a specific template stack

    BgpFilteringRoutingProfileLocationNgfw, BgpFilteringRoutingProfileLocationNgfwArgs

    NgfwDevice string
    The NGFW device
    NgfwDevice string
    The NGFW device
    ngfwDevice String
    The NGFW device
    ngfwDevice string
    The NGFW device
    ngfw_device str
    The NGFW device
    ngfwDevice String
    The NGFW device

    BgpFilteringRoutingProfileLocationTemplate, BgpFilteringRoutingProfileLocationTemplateArgs

    Name string
    Specific Panorama template
    NgfwDevice string
    The NGFW device
    PanoramaDevice string
    Specific Panorama device
    Name string
    Specific Panorama template
    NgfwDevice string
    The NGFW device
    PanoramaDevice string
    Specific Panorama device
    name String
    Specific Panorama template
    ngfwDevice String
    The NGFW device
    panoramaDevice String
    Specific Panorama device
    name string
    Specific Panorama template
    ngfwDevice string
    The NGFW device
    panoramaDevice string
    Specific Panorama device
    name str
    Specific Panorama template
    ngfw_device str
    The NGFW device
    panorama_device str
    Specific Panorama device
    name String
    Specific Panorama template
    ngfwDevice String
    The NGFW device
    panoramaDevice String
    Specific Panorama device

    BgpFilteringRoutingProfileLocationTemplateStack, BgpFilteringRoutingProfileLocationTemplateStackArgs

    Name string
    Specific Panorama template stack
    NgfwDevice string
    The NGFW device
    PanoramaDevice string
    Specific Panorama device
    Name string
    Specific Panorama template stack
    NgfwDevice string
    The NGFW device
    PanoramaDevice string
    Specific Panorama device
    name String
    Specific Panorama template stack
    ngfwDevice String
    The NGFW device
    panoramaDevice String
    Specific Panorama device
    name string
    Specific Panorama template stack
    ngfwDevice string
    The NGFW device
    panoramaDevice string
    Specific Panorama device
    name str
    Specific Panorama template stack
    ngfw_device str
    The NGFW device
    panorama_device str
    Specific Panorama device
    name String
    Specific Panorama template stack
    ngfwDevice String
    The NGFW device
    panoramaDevice String
    Specific Panorama device

    Package Details

    Repository
    panos paloaltonetworks/terraform-provider-panos
    License
    Notes
    This Pulumi package is based on the panos Terraform Provider.
    panos logo
    panos 2.0.7 published on Thursday, Nov 27, 2025 by paloaltonetworks
      Meet Neo: Your AI Platform Teammate