1. Packages
  2. Juniper Mist
  3. API Docs
  4. site
  5. EvpnTopology
Juniper Mist v0.1.7 published on Monday, Jan 13, 2025 by Pulumi

junipermist.site.EvpnTopology

Explore with Pulumi AI

junipermist logo
Juniper Mist v0.1.7 published on Monday, Jan 13, 2025 by Pulumi

    This resource manages the Site Evpn Topologys.

    EVPN allows an alternative but more efficient LAN architecture utilizing VxLAN / MP-BGP to separate the control plane (MAC / IP Learning) from the forwarding plane.

    To create or manage your EVPN Topology with the Mist Provider, please refer to the How To - EVPN Topology Guide.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as mist from "@pulumi/mist";
    
    const evpnOne = new mist.index.SiteSiteEvpnTopology("evpn_one", {
        siteId: terraformTest.id,
        name: "evpn_one",
        evpnOptions: {
            routedAt: "core",
            overlay: {
                as: 65000,
            },
            coreAsBorder: true,
            autoLoopbackSubnet: "172.16.192.0/24",
            autoLoopbackSubnet6: "fd33:ab00:2::/64",
            perVlanVgaV4Mac: false,
            underlay: {
                asBase: 65001,
                useIpv6: false,
                subnet: "10.255.240.0/20",
            },
            autoRouterIdSubnet: "172.16.254.0/23",
        },
        switches: [
            {
                mac: "020004000001",
                role: "core",
            },
            {
                mac: "02000400002",
                role: "core",
            },
            {
                mac: "02000400003",
                role: "distribution",
            },
            {
                mac: "02000400004",
                role: "distribution",
            },
            {
                mac: "02000400005",
                role: "access",
            },
            {
                mac: "02000400006",
                role: "access",
            },
        ],
    });
    
    import pulumi
    import pulumi_mist as mist
    
    evpn_one = mist.index.SiteSiteEvpnTopology("evpn_one",
        site_id=terraform_test.id,
        name=evpn_one,
        evpn_options={
            routedAt: core,
            overlay: {
                as: 65000,
            },
            coreAsBorder: True,
            autoLoopbackSubnet: 172.16.192.0/24,
            autoLoopbackSubnet6: fd33:ab00:2::/64,
            perVlanVgaV4Mac: False,
            underlay: {
                asBase: 65001,
                useIpv6: False,
                subnet: 10.255.240.0/20,
            },
            autoRouterIdSubnet: 172.16.254.0/23,
        },
        switches=[
            {
                mac: 020004000001,
                role: core,
            },
            {
                mac: 02000400002,
                role: core,
            },
            {
                mac: 02000400003,
                role: distribution,
            },
            {
                mac: 02000400004,
                role: distribution,
            },
            {
                mac: 02000400005,
                role: access,
            },
            {
                mac: 02000400006,
                role: access,
            },
        ])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-mist/sdk/go/mist"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := mist.NewSiteSiteEvpnTopology(ctx, "evpn_one", &mist.SiteSiteEvpnTopologyArgs{
    			SiteId: terraformTest.Id,
    			Name:   "evpn_one",
    			EvpnOptions: map[string]interface{}{
    				"routedAt": "core",
    				"overlay": map[string]interface{}{
    					"as": 65000,
    				},
    				"coreAsBorder":        true,
    				"autoLoopbackSubnet":  "172.16.192.0/24",
    				"autoLoopbackSubnet6": "fd33:ab00:2::/64",
    				"perVlanVgaV4Mac":     false,
    				"underlay": map[string]interface{}{
    					"asBase":  65001,
    					"useIpv6": false,
    					"subnet":  "10.255.240.0/20",
    				},
    				"autoRouterIdSubnet": "172.16.254.0/23",
    			},
    			Switches: []map[string]interface{}{
    				map[string]interface{}{
    					"mac":  "020004000001",
    					"role": "core",
    				},
    				map[string]interface{}{
    					"mac":  "02000400002",
    					"role": "core",
    				},
    				map[string]interface{}{
    					"mac":  "02000400003",
    					"role": "distribution",
    				},
    				map[string]interface{}{
    					"mac":  "02000400004",
    					"role": "distribution",
    				},
    				map[string]interface{}{
    					"mac":  "02000400005",
    					"role": "access",
    				},
    				map[string]interface{}{
    					"mac":  "02000400006",
    					"role": "access",
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Mist = Pulumi.Mist;
    
    return await Deployment.RunAsync(() => 
    {
        var evpnOne = new Mist.Index.SiteSiteEvpnTopology("evpn_one", new()
        {
            SiteId = terraformTest.Id,
            Name = "evpn_one",
            EvpnOptions = 
            {
                { "routedAt", "core" },
                { "overlay", 
                {
                    { "as", 65000 },
                } },
                { "coreAsBorder", true },
                { "autoLoopbackSubnet", "172.16.192.0/24" },
                { "autoLoopbackSubnet6", "fd33:ab00:2::/64" },
                { "perVlanVgaV4Mac", false },
                { "underlay", 
                {
                    { "asBase", 65001 },
                    { "useIpv6", false },
                    { "subnet", "10.255.240.0/20" },
                } },
                { "autoRouterIdSubnet", "172.16.254.0/23" },
            },
            Switches = new[]
            {
                
                {
                    { "mac", "020004000001" },
                    { "role", "core" },
                },
                
                {
                    { "mac", "02000400002" },
                    { "role", "core" },
                },
                
                {
                    { "mac", "02000400003" },
                    { "role", "distribution" },
                },
                
                {
                    { "mac", "02000400004" },
                    { "role", "distribution" },
                },
                
                {
                    { "mac", "02000400005" },
                    { "role", "access" },
                },
                
                {
                    { "mac", "02000400006" },
                    { "role", "access" },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.mist.siteSiteEvpnTopology;
    import com.pulumi.mist.SiteSiteEvpnTopologyArgs;
    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) {
            var evpnOne = new SiteSiteEvpnTopology("evpnOne", SiteSiteEvpnTopologyArgs.builder()
                .siteId(terraformTest.id())
                .name("evpn_one")
                .evpnOptions(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))
                .switches(            
                    %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
                    %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
                    %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
                    %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
                    %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),
                    %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))
                .build());
    
        }
    }
    
    resources:
      evpnOne:
        type: mist:siteSiteEvpnTopology
        name: evpn_one
        properties:
          siteId: ${terraformTest.id}
          name: evpn_one
          evpnOptions:
            routedAt: core
            overlay:
              as: 65000
            coreAsBorder: true
            autoLoopbackSubnet: 172.16.192.0/24
            autoLoopbackSubnet6: fd33:ab00:2::/64
            perVlanVgaV4Mac: false
            underlay:
              asBase: 65001
              useIpv6: false
              subnet: 10.255.240.0/20
            autoRouterIdSubnet: 172.16.254.0/23
          switches:
            - mac: '020004000001'
              role: core
            - mac: '02000400002'
              role: core
            - mac: '02000400003'
              role: distribution
            - mac: '02000400004'
              role: distribution
            - mac: '02000400005'
              role: access
            - mac: '02000400006'
              role: access
    

    Create EvpnTopology Resource

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

    Constructor syntax

    new EvpnTopology(name: string, args: EvpnTopologyArgs, opts?: CustomResourceOptions);
    @overload
    def EvpnTopology(resource_name: str,
                     args: EvpnTopologyArgs,
                     opts: Optional[ResourceOptions] = None)
    
    @overload
    def EvpnTopology(resource_name: str,
                     opts: Optional[ResourceOptions] = None,
                     site_id: Optional[str] = None,
                     switches: Optional[Mapping[str, EvpnTopologySwitchesArgs]] = None,
                     evpn_options: Optional[EvpnTopologyEvpnOptionsArgs] = None,
                     name: Optional[str] = None,
                     pod_names: Optional[Mapping[str, str]] = None)
    func NewEvpnTopology(ctx *Context, name string, args EvpnTopologyArgs, opts ...ResourceOption) (*EvpnTopology, error)
    public EvpnTopology(string name, EvpnTopologyArgs args, CustomResourceOptions? opts = null)
    public EvpnTopology(String name, EvpnTopologyArgs args)
    public EvpnTopology(String name, EvpnTopologyArgs args, CustomResourceOptions options)
    
    type: junipermist:site:EvpnTopology
    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 EvpnTopologyArgs
    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 EvpnTopologyArgs
    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 EvpnTopologyArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args EvpnTopologyArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args EvpnTopologyArgs
    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 junipermistEvpnTopologyResource = new JuniperMist.Site.EvpnTopology("junipermistEvpnTopologyResource", new()
    {
        SiteId = "string",
        Switches = 
        {
            { "string", new JuniperMist.Site.Inputs.EvpnTopologySwitchesArgs
            {
                Role = "string",
                DeviceprofileId = "string",
                EvpnId = 0,
                Mac = "string",
                Model = "string",
                Pod = 0,
                Pods = new[]
                {
                    0,
                },
                RouterId = "string",
                SiteId = "string",
            } },
        },
        EvpnOptions = new JuniperMist.Site.Inputs.EvpnTopologyEvpnOptionsArgs
        {
            AutoLoopbackSubnet = "string",
            AutoLoopbackSubnet6 = "string",
            AutoRouterIdSubnet = "string",
            AutoRouterIdSubnet6 = "string",
            CoreAsBorder = false,
            Overlay = new JuniperMist.Site.Inputs.EvpnTopologyEvpnOptionsOverlayArgs
            {
                As = 0,
            },
            PerVlanVgaV4Mac = false,
            RoutedAt = "string",
            Underlay = new JuniperMist.Site.Inputs.EvpnTopologyEvpnOptionsUnderlayArgs
            {
                AsBase = 0,
                RoutedIdPrefix = "string",
                Subnet = "string",
                UseIpv6 = false,
            },
            VsInstances = 
            {
                { "string", new JuniperMist.Site.Inputs.EvpnTopologyEvpnOptionsVsInstancesArgs
                {
                    Networks = new[]
                    {
                        "string",
                    },
                } },
            },
        },
        Name = "string",
        PodNames = 
        {
            { "string", "string" },
        },
    });
    
    example, err := site.NewEvpnTopology(ctx, "junipermistEvpnTopologyResource", &site.EvpnTopologyArgs{
    	SiteId: pulumi.String("string"),
    	Switches: site.EvpnTopologySwitchesMap{
    		"string": &site.EvpnTopologySwitchesArgs{
    			Role:            pulumi.String("string"),
    			DeviceprofileId: pulumi.String("string"),
    			EvpnId:          pulumi.Int(0),
    			Mac:             pulumi.String("string"),
    			Model:           pulumi.String("string"),
    			Pod:             pulumi.Int(0),
    			Pods: pulumi.IntArray{
    				pulumi.Int(0),
    			},
    			RouterId: pulumi.String("string"),
    			SiteId:   pulumi.String("string"),
    		},
    	},
    	EvpnOptions: &site.EvpnTopologyEvpnOptionsArgs{
    		AutoLoopbackSubnet:  pulumi.String("string"),
    		AutoLoopbackSubnet6: pulumi.String("string"),
    		AutoRouterIdSubnet:  pulumi.String("string"),
    		AutoRouterIdSubnet6: pulumi.String("string"),
    		CoreAsBorder:        pulumi.Bool(false),
    		Overlay: &site.EvpnTopologyEvpnOptionsOverlayArgs{
    			As: pulumi.Int(0),
    		},
    		PerVlanVgaV4Mac: pulumi.Bool(false),
    		RoutedAt:        pulumi.String("string"),
    		Underlay: &site.EvpnTopologyEvpnOptionsUnderlayArgs{
    			AsBase:         pulumi.Int(0),
    			RoutedIdPrefix: pulumi.String("string"),
    			Subnet:         pulumi.String("string"),
    			UseIpv6:        pulumi.Bool(false),
    		},
    		VsInstances: site.EvpnTopologyEvpnOptionsVsInstancesMap{
    			"string": &site.EvpnTopologyEvpnOptionsVsInstancesArgs{
    				Networks: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    			},
    		},
    	},
    	Name: pulumi.String("string"),
    	PodNames: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    })
    
    var junipermistEvpnTopologyResource = new EvpnTopology("junipermistEvpnTopologyResource", EvpnTopologyArgs.builder()
        .siteId("string")
        .switches(Map.of("string", Map.ofEntries(
            Map.entry("role", "string"),
            Map.entry("deviceprofileId", "string"),
            Map.entry("evpnId", 0),
            Map.entry("mac", "string"),
            Map.entry("model", "string"),
            Map.entry("pod", 0),
            Map.entry("pods", 0),
            Map.entry("routerId", "string"),
            Map.entry("siteId", "string")
        )))
        .evpnOptions(EvpnTopologyEvpnOptionsArgs.builder()
            .autoLoopbackSubnet("string")
            .autoLoopbackSubnet6("string")
            .autoRouterIdSubnet("string")
            .autoRouterIdSubnet6("string")
            .coreAsBorder(false)
            .overlay(EvpnTopologyEvpnOptionsOverlayArgs.builder()
                .as(0)
                .build())
            .perVlanVgaV4Mac(false)
            .routedAt("string")
            .underlay(EvpnTopologyEvpnOptionsUnderlayArgs.builder()
                .asBase(0)
                .routedIdPrefix("string")
                .subnet("string")
                .useIpv6(false)
                .build())
            .vsInstances(Map.of("string", Map.of("networks", "string")))
            .build())
        .name("string")
        .podNames(Map.of("string", "string"))
        .build());
    
    junipermist_evpn_topology_resource = junipermist.site.EvpnTopology("junipermistEvpnTopologyResource",
        site_id="string",
        switches={
            "string": {
                "role": "string",
                "deviceprofile_id": "string",
                "evpn_id": 0,
                "mac": "string",
                "model": "string",
                "pod": 0,
                "pods": [0],
                "router_id": "string",
                "site_id": "string",
            },
        },
        evpn_options={
            "auto_loopback_subnet": "string",
            "auto_loopback_subnet6": "string",
            "auto_router_id_subnet": "string",
            "auto_router_id_subnet6": "string",
            "core_as_border": False,
            "overlay": {
                "as_": 0,
            },
            "per_vlan_vga_v4_mac": False,
            "routed_at": "string",
            "underlay": {
                "as_base": 0,
                "routed_id_prefix": "string",
                "subnet": "string",
                "use_ipv6": False,
            },
            "vs_instances": {
                "string": {
                    "networks": ["string"],
                },
            },
        },
        name="string",
        pod_names={
            "string": "string",
        })
    
    const junipermistEvpnTopologyResource = new junipermist.site.EvpnTopology("junipermistEvpnTopologyResource", {
        siteId: "string",
        switches: {
            string: {
                role: "string",
                deviceprofileId: "string",
                evpnId: 0,
                mac: "string",
                model: "string",
                pod: 0,
                pods: [0],
                routerId: "string",
                siteId: "string",
            },
        },
        evpnOptions: {
            autoLoopbackSubnet: "string",
            autoLoopbackSubnet6: "string",
            autoRouterIdSubnet: "string",
            autoRouterIdSubnet6: "string",
            coreAsBorder: false,
            overlay: {
                as: 0,
            },
            perVlanVgaV4Mac: false,
            routedAt: "string",
            underlay: {
                asBase: 0,
                routedIdPrefix: "string",
                subnet: "string",
                useIpv6: false,
            },
            vsInstances: {
                string: {
                    networks: ["string"],
                },
            },
        },
        name: "string",
        podNames: {
            string: "string",
        },
    });
    
    type: junipermist:site:EvpnTopology
    properties:
        evpnOptions:
            autoLoopbackSubnet: string
            autoLoopbackSubnet6: string
            autoRouterIdSubnet: string
            autoRouterIdSubnet6: string
            coreAsBorder: false
            overlay:
                as: 0
            perVlanVgaV4Mac: false
            routedAt: string
            underlay:
                asBase: 0
                routedIdPrefix: string
                subnet: string
                useIpv6: false
            vsInstances:
                string:
                    networks:
                        - string
        name: string
        podNames:
            string: string
        siteId: string
        switches:
            string:
                deviceprofileId: string
                evpnId: 0
                mac: string
                model: string
                pod: 0
                pods:
                    - 0
                role: string
                routerId: string
                siteId: string
    

    EvpnTopology 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 EvpnTopology resource accepts the following input properties:

    SiteId string
    Switches Dictionary<string, Pulumi.JuniperMist.Site.Inputs.EvpnTopologySwitchesArgs>
    Property key can be the switch MAC Address
    EvpnOptions Pulumi.JuniperMist.Site.Inputs.EvpnTopologyEvpnOptions
    EVPN Options
    Name string
    PodNames Dictionary<string, string>
    Property key is the pod number
    SiteId string
    Switches map[string]EvpnTopologySwitchesArgs
    Property key can be the switch MAC Address
    EvpnOptions EvpnTopologyEvpnOptionsArgs
    EVPN Options
    Name string
    PodNames map[string]string
    Property key is the pod number
    siteId String
    switches Map<String,EvpnTopologySwitchesArgs>
    Property key can be the switch MAC Address
    evpnOptions EvpnTopologyEvpnOptions
    EVPN Options
    name String
    podNames Map<String,String>
    Property key is the pod number
    siteId string
    switches {[key: string]: EvpnTopologySwitchesArgs}
    Property key can be the switch MAC Address
    evpnOptions EvpnTopologyEvpnOptions
    EVPN Options
    name string
    podNames {[key: string]: string}
    Property key is the pod number
    site_id str
    switches Mapping[str, EvpnTopologySwitchesArgs]
    Property key can be the switch MAC Address
    evpn_options EvpnTopologyEvpnOptionsArgs
    EVPN Options
    name str
    pod_names Mapping[str, str]
    Property key is the pod number
    siteId String
    switches Map<Property Map>
    Property key can be the switch MAC Address
    evpnOptions Property Map
    EVPN Options
    name String
    podNames Map<String>
    Property key is the pod number

    Outputs

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

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

    Look up Existing EvpnTopology Resource

    Get an existing EvpnTopology 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?: EvpnTopologyState, opts?: CustomResourceOptions): EvpnTopology
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            evpn_options: Optional[EvpnTopologyEvpnOptionsArgs] = None,
            name: Optional[str] = None,
            org_id: Optional[str] = None,
            pod_names: Optional[Mapping[str, str]] = None,
            site_id: Optional[str] = None,
            switches: Optional[Mapping[str, EvpnTopologySwitchesArgs]] = None) -> EvpnTopology
    func GetEvpnTopology(ctx *Context, name string, id IDInput, state *EvpnTopologyState, opts ...ResourceOption) (*EvpnTopology, error)
    public static EvpnTopology Get(string name, Input<string> id, EvpnTopologyState? state, CustomResourceOptions? opts = null)
    public static EvpnTopology get(String name, Output<String> id, EvpnTopologyState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    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:
    EvpnOptions Pulumi.JuniperMist.Site.Inputs.EvpnTopologyEvpnOptions
    EVPN Options
    Name string
    OrgId string
    PodNames Dictionary<string, string>
    Property key is the pod number
    SiteId string
    Switches Dictionary<string, Pulumi.JuniperMist.Site.Inputs.EvpnTopologySwitchesArgs>
    Property key can be the switch MAC Address
    EvpnOptions EvpnTopologyEvpnOptionsArgs
    EVPN Options
    Name string
    OrgId string
    PodNames map[string]string
    Property key is the pod number
    SiteId string
    Switches map[string]EvpnTopologySwitchesArgs
    Property key can be the switch MAC Address
    evpnOptions EvpnTopologyEvpnOptions
    EVPN Options
    name String
    orgId String
    podNames Map<String,String>
    Property key is the pod number
    siteId String
    switches Map<String,EvpnTopologySwitchesArgs>
    Property key can be the switch MAC Address
    evpnOptions EvpnTopologyEvpnOptions
    EVPN Options
    name string
    orgId string
    podNames {[key: string]: string}
    Property key is the pod number
    siteId string
    switches {[key: string]: EvpnTopologySwitchesArgs}
    Property key can be the switch MAC Address
    evpn_options EvpnTopologyEvpnOptionsArgs
    EVPN Options
    name str
    org_id str
    pod_names Mapping[str, str]
    Property key is the pod number
    site_id str
    switches Mapping[str, EvpnTopologySwitchesArgs]
    Property key can be the switch MAC Address
    evpnOptions Property Map
    EVPN Options
    name String
    orgId String
    podNames Map<String>
    Property key is the pod number
    siteId String
    switches Map<Property Map>
    Property key can be the switch MAC Address

    Supporting Types

    EvpnTopologyEvpnOptions, EvpnTopologyEvpnOptionsArgs

    AutoLoopbackSubnet string
    optional, for dhcp_relay, unique loopback IPs are required for ERB or IPClos where we can set option-82 server_id-overrides
    AutoLoopbackSubnet6 string
    optional, for dhcp_relay, unique loopback IPs are required for ERB or IPClos where we can set option-82 server_id-overrides
    AutoRouterIdSubnet string
    optional, this generates router_id automatically, if specified, router_id_prefix is ignored
    AutoRouterIdSubnet6 string
    optional, this generates router_id automatically, if specified, router_id_prefix is ignored
    CoreAsBorder bool
    optional, for ERB or CLOS, you can either use esilag to upstream routers or to also be the virtual-gateway when routed_at != core, whether to do virtual-gateway at core as well
    Overlay Pulumi.JuniperMist.Site.Inputs.EvpnTopologyEvpnOptionsOverlay
    PerVlanVgaV4Mac bool
    by default, JUNOS uses 00-00-5e-00-01-01 as the virtual-gateway-address's v4_mac if enabled, 00-00-5e-00-XX-YY will be used (where XX=vlan_id/256, YY=vlan_id%256)
    RoutedAt string
    optional, where virtual-gateway should reside. enum: core, distribution, edge
    Underlay Pulumi.JuniperMist.Site.Inputs.EvpnTopologyEvpnOptionsUnderlay
    VsInstances Dictionary<string, Pulumi.JuniperMist.Site.Inputs.EvpnTopologyEvpnOptionsVsInstances>
    optional, for EX9200 only to seggregate virtual-switches
    AutoLoopbackSubnet string
    optional, for dhcp_relay, unique loopback IPs are required for ERB or IPClos where we can set option-82 server_id-overrides
    AutoLoopbackSubnet6 string
    optional, for dhcp_relay, unique loopback IPs are required for ERB or IPClos where we can set option-82 server_id-overrides
    AutoRouterIdSubnet string
    optional, this generates router_id automatically, if specified, router_id_prefix is ignored
    AutoRouterIdSubnet6 string
    optional, this generates router_id automatically, if specified, router_id_prefix is ignored
    CoreAsBorder bool
    optional, for ERB or CLOS, you can either use esilag to upstream routers or to also be the virtual-gateway when routed_at != core, whether to do virtual-gateway at core as well
    Overlay EvpnTopologyEvpnOptionsOverlay
    PerVlanVgaV4Mac bool
    by default, JUNOS uses 00-00-5e-00-01-01 as the virtual-gateway-address's v4_mac if enabled, 00-00-5e-00-XX-YY will be used (where XX=vlan_id/256, YY=vlan_id%256)
    RoutedAt string
    optional, where virtual-gateway should reside. enum: core, distribution, edge
    Underlay EvpnTopologyEvpnOptionsUnderlay
    VsInstances map[string]EvpnTopologyEvpnOptionsVsInstances
    optional, for EX9200 only to seggregate virtual-switches
    autoLoopbackSubnet String
    optional, for dhcp_relay, unique loopback IPs are required for ERB or IPClos where we can set option-82 server_id-overrides
    autoLoopbackSubnet6 String
    optional, for dhcp_relay, unique loopback IPs are required for ERB or IPClos where we can set option-82 server_id-overrides
    autoRouterIdSubnet String
    optional, this generates router_id automatically, if specified, router_id_prefix is ignored
    autoRouterIdSubnet6 String
    optional, this generates router_id automatically, if specified, router_id_prefix is ignored
    coreAsBorder Boolean
    optional, for ERB or CLOS, you can either use esilag to upstream routers or to also be the virtual-gateway when routed_at != core, whether to do virtual-gateway at core as well
    overlay EvpnTopologyEvpnOptionsOverlay
    perVlanVgaV4Mac Boolean
    by default, JUNOS uses 00-00-5e-00-01-01 as the virtual-gateway-address's v4_mac if enabled, 00-00-5e-00-XX-YY will be used (where XX=vlan_id/256, YY=vlan_id%256)
    routedAt String
    optional, where virtual-gateway should reside. enum: core, distribution, edge
    underlay EvpnTopologyEvpnOptionsUnderlay
    vsInstances Map<String,EvpnTopologyEvpnOptionsVsInstances>
    optional, for EX9200 only to seggregate virtual-switches
    autoLoopbackSubnet string
    optional, for dhcp_relay, unique loopback IPs are required for ERB or IPClos where we can set option-82 server_id-overrides
    autoLoopbackSubnet6 string
    optional, for dhcp_relay, unique loopback IPs are required for ERB or IPClos where we can set option-82 server_id-overrides
    autoRouterIdSubnet string
    optional, this generates router_id automatically, if specified, router_id_prefix is ignored
    autoRouterIdSubnet6 string
    optional, this generates router_id automatically, if specified, router_id_prefix is ignored
    coreAsBorder boolean
    optional, for ERB or CLOS, you can either use esilag to upstream routers or to also be the virtual-gateway when routed_at != core, whether to do virtual-gateway at core as well
    overlay EvpnTopologyEvpnOptionsOverlay
    perVlanVgaV4Mac boolean
    by default, JUNOS uses 00-00-5e-00-01-01 as the virtual-gateway-address's v4_mac if enabled, 00-00-5e-00-XX-YY will be used (where XX=vlan_id/256, YY=vlan_id%256)
    routedAt string
    optional, where virtual-gateway should reside. enum: core, distribution, edge
    underlay EvpnTopologyEvpnOptionsUnderlay
    vsInstances {[key: string]: EvpnTopologyEvpnOptionsVsInstances}
    optional, for EX9200 only to seggregate virtual-switches
    auto_loopback_subnet str
    optional, for dhcp_relay, unique loopback IPs are required for ERB or IPClos where we can set option-82 server_id-overrides
    auto_loopback_subnet6 str
    optional, for dhcp_relay, unique loopback IPs are required for ERB or IPClos where we can set option-82 server_id-overrides
    auto_router_id_subnet str
    optional, this generates router_id automatically, if specified, router_id_prefix is ignored
    auto_router_id_subnet6 str
    optional, this generates router_id automatically, if specified, router_id_prefix is ignored
    core_as_border bool
    optional, for ERB or CLOS, you can either use esilag to upstream routers or to also be the virtual-gateway when routed_at != core, whether to do virtual-gateway at core as well
    overlay EvpnTopologyEvpnOptionsOverlay
    per_vlan_vga_v4_mac bool
    by default, JUNOS uses 00-00-5e-00-01-01 as the virtual-gateway-address's v4_mac if enabled, 00-00-5e-00-XX-YY will be used (where XX=vlan_id/256, YY=vlan_id%256)
    routed_at str
    optional, where virtual-gateway should reside. enum: core, distribution, edge
    underlay EvpnTopologyEvpnOptionsUnderlay
    vs_instances Mapping[str, EvpnTopologyEvpnOptionsVsInstances]
    optional, for EX9200 only to seggregate virtual-switches
    autoLoopbackSubnet String
    optional, for dhcp_relay, unique loopback IPs are required for ERB or IPClos where we can set option-82 server_id-overrides
    autoLoopbackSubnet6 String
    optional, for dhcp_relay, unique loopback IPs are required for ERB or IPClos where we can set option-82 server_id-overrides
    autoRouterIdSubnet String
    optional, this generates router_id automatically, if specified, router_id_prefix is ignored
    autoRouterIdSubnet6 String
    optional, this generates router_id automatically, if specified, router_id_prefix is ignored
    coreAsBorder Boolean
    optional, for ERB or CLOS, you can either use esilag to upstream routers or to also be the virtual-gateway when routed_at != core, whether to do virtual-gateway at core as well
    overlay Property Map
    perVlanVgaV4Mac Boolean
    by default, JUNOS uses 00-00-5e-00-01-01 as the virtual-gateway-address's v4_mac if enabled, 00-00-5e-00-XX-YY will be used (where XX=vlan_id/256, YY=vlan_id%256)
    routedAt String
    optional, where virtual-gateway should reside. enum: core, distribution, edge
    underlay Property Map
    vsInstances Map<Property Map>
    optional, for EX9200 only to seggregate virtual-switches

    EvpnTopologyEvpnOptionsOverlay, EvpnTopologyEvpnOptionsOverlayArgs

    As int
    Overlay BGP Local AS Number
    As int
    Overlay BGP Local AS Number
    as Integer
    Overlay BGP Local AS Number
    as number
    Overlay BGP Local AS Number
    as_ int
    Overlay BGP Local AS Number
    as Number
    Overlay BGP Local AS Number

    EvpnTopologyEvpnOptionsUnderlay, EvpnTopologyEvpnOptionsUnderlayArgs

    AsBase int
    Underlay BGP Base AS Number
    RoutedIdPrefix string
    Subnet string
    underlay subnet, by default, 10.255.240.0/20, or fd31:5700::/64 for ipv6
    UseIpv6 bool
    if v6 is desired for underlay
    AsBase int
    Underlay BGP Base AS Number
    RoutedIdPrefix string
    Subnet string
    underlay subnet, by default, 10.255.240.0/20, or fd31:5700::/64 for ipv6
    UseIpv6 bool
    if v6 is desired for underlay
    asBase Integer
    Underlay BGP Base AS Number
    routedIdPrefix String
    subnet String
    underlay subnet, by default, 10.255.240.0/20, or fd31:5700::/64 for ipv6
    useIpv6 Boolean
    if v6 is desired for underlay
    asBase number
    Underlay BGP Base AS Number
    routedIdPrefix string
    subnet string
    underlay subnet, by default, 10.255.240.0/20, or fd31:5700::/64 for ipv6
    useIpv6 boolean
    if v6 is desired for underlay
    as_base int
    Underlay BGP Base AS Number
    routed_id_prefix str
    subnet str
    underlay subnet, by default, 10.255.240.0/20, or fd31:5700::/64 for ipv6
    use_ipv6 bool
    if v6 is desired for underlay
    asBase Number
    Underlay BGP Base AS Number
    routedIdPrefix String
    subnet String
    underlay subnet, by default, 10.255.240.0/20, or fd31:5700::/64 for ipv6
    useIpv6 Boolean
    if v6 is desired for underlay

    EvpnTopologyEvpnOptionsVsInstances, EvpnTopologyEvpnOptionsVsInstancesArgs

    Networks List<string>
    Networks []string
    networks List<String>
    networks string[]
    networks Sequence[str]
    networks List<String>

    EvpnTopologySwitches, EvpnTopologySwitchesArgs

    Role string
    use role==none to remove a switch from the topology. enum: access, collapsed-core, core, distribution, esilag-access, none
    DeviceprofileId string
    EvpnId int
    Mac string
    Model string
    Pod int
    optionally, for distribution / access / esilag-access, they can be placed into different pods. e.g.

    • for CLOS, to group dist / access switches into pods
    • for ERB/CRB, to group dist / esilag-access into pods
    Pods List<int>
    by default, core switches are assumed to be connecting all pods. if you want to limit the pods, you can specify pods.
    RouterId string
    SiteId string
    Role string
    use role==none to remove a switch from the topology. enum: access, collapsed-core, core, distribution, esilag-access, none
    DeviceprofileId string
    EvpnId int
    Mac string
    Model string
    Pod int
    optionally, for distribution / access / esilag-access, they can be placed into different pods. e.g.

    • for CLOS, to group dist / access switches into pods
    • for ERB/CRB, to group dist / esilag-access into pods
    Pods []int
    by default, core switches are assumed to be connecting all pods. if you want to limit the pods, you can specify pods.
    RouterId string
    SiteId string
    role String
    use role==none to remove a switch from the topology. enum: access, collapsed-core, core, distribution, esilag-access, none
    deviceprofileId String
    evpnId Integer
    mac String
    model String
    pod Integer
    optionally, for distribution / access / esilag-access, they can be placed into different pods. e.g.

    • for CLOS, to group dist / access switches into pods
    • for ERB/CRB, to group dist / esilag-access into pods
    pods List<Integer>
    by default, core switches are assumed to be connecting all pods. if you want to limit the pods, you can specify pods.
    routerId String
    siteId String
    role string
    use role==none to remove a switch from the topology. enum: access, collapsed-core, core, distribution, esilag-access, none
    deviceprofileId string
    evpnId number
    mac string
    model string
    pod number
    optionally, for distribution / access / esilag-access, they can be placed into different pods. e.g.

    • for CLOS, to group dist / access switches into pods
    • for ERB/CRB, to group dist / esilag-access into pods
    pods number[]
    by default, core switches are assumed to be connecting all pods. if you want to limit the pods, you can specify pods.
    routerId string
    siteId string
    role str
    use role==none to remove a switch from the topology. enum: access, collapsed-core, core, distribution, esilag-access, none
    deviceprofile_id str
    evpn_id int
    mac str
    model str
    pod int
    optionally, for distribution / access / esilag-access, they can be placed into different pods. e.g.

    • for CLOS, to group dist / access switches into pods
    • for ERB/CRB, to group dist / esilag-access into pods
    pods Sequence[int]
    by default, core switches are assumed to be connecting all pods. if you want to limit the pods, you can specify pods.
    router_id str
    site_id str
    role String
    use role==none to remove a switch from the topology. enum: access, collapsed-core, core, distribution, esilag-access, none
    deviceprofileId String
    evpnId Number
    mac String
    model String
    pod Number
    optionally, for distribution / access / esilag-access, they can be placed into different pods. e.g.

    • for CLOS, to group dist / access switches into pods
    • for ERB/CRB, to group dist / esilag-access into pods
    pods List<Number>
    by default, core switches are assumed to be connecting all pods. if you want to limit the pods, you can specify pods.
    routerId String
    siteId String

    Import

    Using pulumi import, import mist_site_evpn_topology with:

    EVPN Topology can be imported by specifying the site_id and the evpn_topology_id

    $ pulumi import junipermist:site/evpnTopology:EvpnTopology evpn_one 17b46405-3a6d-4715-8bb4-6bb6d06f316a.d3c42998-9012-4859-9743-6b9bee475309
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    junipermist pulumi/pulumi-junipermist
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the mist Terraform Provider.
    junipermist logo
    Juniper Mist v0.1.7 published on Monday, Jan 13, 2025 by Pulumi