1. Packages
  2. Proxmox Virtual Environment (Proxmox VE)
  3. API Docs
  4. Sdn
  5. getZones
Proxmox Virtual Environment (Proxmox VE) v7.4.0 published on Sunday, Aug 17, 2025 by Daniel Muehlbachler-Pietrzykowski

proxmoxve.Sdn.getZones

Explore with Pulumi AI

proxmoxve logo
Proxmox Virtual Environment (Proxmox VE) v7.4.0 published on Sunday, Aug 17, 2025 by Daniel Muehlbachler-Pietrzykowski

    Retrieves information about all SDN Zones in Proxmox. This data source can optionally filter zones by type.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as proxmoxve from "@muhlba91/pulumi-proxmoxve";
    
    const all = proxmoxve.Sdn.getZones({});
    const evpnOnly = proxmoxve.Sdn.getZones({
        type: "evpn",
    });
    const simpleOnly = proxmoxve.Sdn.getZones({
        type: "simple",
    });
    export const dataProxmoxVirtualEnvironmentSdnZonesAll = {
        zones: all.then(all => all.zones),
    };
    export const dataProxmoxVirtualEnvironmentSdnZonesFiltered = {
        evpn_zones: evpnOnly.then(evpnOnly => evpnOnly.zones),
        simple_zones: simpleOnly.then(simpleOnly => simpleOnly.zones),
    };
    
    import pulumi
    import pulumi_proxmoxve as proxmoxve
    
    all = proxmoxve.Sdn.get_zones()
    evpn_only = proxmoxve.Sdn.get_zones(type="evpn")
    simple_only = proxmoxve.Sdn.get_zones(type="simple")
    pulumi.export("dataProxmoxVirtualEnvironmentSdnZonesAll", {
        "zones": all.zones,
    })
    pulumi.export("dataProxmoxVirtualEnvironmentSdnZonesFiltered", {
        "evpn_zones": evpn_only.zones,
        "simple_zones": simple_only.zones,
    })
    
    package main
    
    import (
    	"github.com/muhlba91/pulumi-proxmoxve/sdk/v7/go/proxmoxve/sdn"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		all, err := sdn.GetZones(ctx, &sdn.GetZonesArgs{}, nil)
    		if err != nil {
    			return err
    		}
    		evpnOnly, err := sdn.GetZones(ctx, &sdn.GetZonesArgs{
    			Type: pulumi.StringRef("evpn"),
    		}, nil)
    		if err != nil {
    			return err
    		}
    		simpleOnly, err := sdn.GetZones(ctx, &sdn.GetZonesArgs{
    			Type: pulumi.StringRef("simple"),
    		}, nil)
    		if err != nil {
    			return err
    		}
    		ctx.Export("dataProxmoxVirtualEnvironmentSdnZonesAll", []sdn.GetZonesZoneMap{
    			"zones": all.Zones,
    		})
    		ctx.Export("dataProxmoxVirtualEnvironmentSdnZonesFiltered", []sdn.GetZonesZoneMap{
    			"evpn_zones":   evpnOnly.Zones,
    			"simple_zones": simpleOnly.Zones,
    		})
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using ProxmoxVE = Pulumi.ProxmoxVE;
    
    return await Deployment.RunAsync(() => 
    {
        var all = ProxmoxVE.Sdn.GetZones.Invoke();
    
        var evpnOnly = ProxmoxVE.Sdn.GetZones.Invoke(new()
        {
            Type = "evpn",
        });
    
        var simpleOnly = ProxmoxVE.Sdn.GetZones.Invoke(new()
        {
            Type = "simple",
        });
    
        return new Dictionary<string, object?>
        {
            ["dataProxmoxVirtualEnvironmentSdnZonesAll"] = 
            {
                { "zones", all.Apply(getZonesResult => getZonesResult.Zones) },
            },
            ["dataProxmoxVirtualEnvironmentSdnZonesFiltered"] = 
            {
                { "evpn_zones", evpnOnly.Apply(getZonesResult => getZonesResult.Zones) },
                { "simple_zones", simpleOnly.Apply(getZonesResult => getZonesResult.Zones) },
            },
        };
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.proxmoxve.Sdn.SdnFunctions;
    import com.pulumi.proxmoxve.Sdn.inputs.GetZonesArgs;
    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) {
            final var all = SdnFunctions.getZones(GetZonesArgs.builder()
                .build());
    
            final var evpnOnly = SdnFunctions.getZones(GetZonesArgs.builder()
                .type("evpn")
                .build());
    
            final var simpleOnly = SdnFunctions.getZones(GetZonesArgs.builder()
                .type("simple")
                .build());
    
            ctx.export("dataProxmoxVirtualEnvironmentSdnZonesAll", Map.of("zones", all.zones()));
            ctx.export("dataProxmoxVirtualEnvironmentSdnZonesFiltered", Map.ofEntries(
                Map.entry("evpn_zones", evpnOnly.zones()),
                Map.entry("simple_zones", simpleOnly.zones())
            ));
        }
    }
    
    variables:
      all:
        fn::invoke:
          function: proxmoxve:Sdn:getZones
          arguments: {}
      evpnOnly:
        fn::invoke:
          function: proxmoxve:Sdn:getZones
          arguments:
            type: evpn
      simpleOnly:
        fn::invoke:
          function: proxmoxve:Sdn:getZones
          arguments:
            type: simple
    outputs:
      dataProxmoxVirtualEnvironmentSdnZonesAll:
        zones: ${all.zones}
      dataProxmoxVirtualEnvironmentSdnZonesFiltered:
        evpn_zones: ${evpnOnly.zones}
        simple_zones: ${simpleOnly.zones}
    

    Using getZones

    Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.

    function getZones(args: GetZonesArgs, opts?: InvokeOptions): Promise<GetZonesResult>
    function getZonesOutput(args: GetZonesOutputArgs, opts?: InvokeOptions): Output<GetZonesResult>
    def get_zones(type: Optional[str] = None,
                  opts: Optional[InvokeOptions] = None) -> GetZonesResult
    def get_zones_output(type: Optional[pulumi.Input[str]] = None,
                  opts: Optional[InvokeOptions] = None) -> Output[GetZonesResult]
    func GetZones(ctx *Context, args *GetZonesArgs, opts ...InvokeOption) (*GetZonesResult, error)
    func GetZonesOutput(ctx *Context, args *GetZonesOutputArgs, opts ...InvokeOption) GetZonesResultOutput

    > Note: This function is named GetZones in the Go SDK.

    public static class GetZones 
    {
        public static Task<GetZonesResult> InvokeAsync(GetZonesArgs args, InvokeOptions? opts = null)
        public static Output<GetZonesResult> Invoke(GetZonesInvokeArgs args, InvokeOptions? opts = null)
    }
    public static CompletableFuture<GetZonesResult> getZones(GetZonesArgs args, InvokeOptions options)
    public static Output<GetZonesResult> getZones(GetZonesArgs args, InvokeOptions options)
    
    fn::invoke:
      function: proxmoxve:Sdn/getZones:getZones
      arguments:
        # arguments dictionary

    The following arguments are supported:

    Type string
    Filter zones by type (simple, vlan, qinq, vxlan, evpn).
    Type string
    Filter zones by type (simple, vlan, qinq, vxlan, evpn).
    type String
    Filter zones by type (simple, vlan, qinq, vxlan, evpn).
    type string
    Filter zones by type (simple, vlan, qinq, vxlan, evpn).
    type str
    Filter zones by type (simple, vlan, qinq, vxlan, evpn).
    type String
    Filter zones by type (simple, vlan, qinq, vxlan, evpn).

    getZones Result

    The following output properties are available:

    Id string
    The provider-assigned unique ID for this managed resource.
    Zones List<Pulumi.ProxmoxVE.Sdn.Outputs.GetZonesZone>
    List of SDN zones.
    Type string
    Filter zones by type (simple, vlan, qinq, vxlan, evpn).
    Id string
    The provider-assigned unique ID for this managed resource.
    Zones []GetZonesZone
    List of SDN zones.
    Type string
    Filter zones by type (simple, vlan, qinq, vxlan, evpn).
    id String
    The provider-assigned unique ID for this managed resource.
    zones List<GetZonesZone>
    List of SDN zones.
    type String
    Filter zones by type (simple, vlan, qinq, vxlan, evpn).
    id string
    The provider-assigned unique ID for this managed resource.
    zones GetZonesZone[]
    List of SDN zones.
    type string
    Filter zones by type (simple, vlan, qinq, vxlan, evpn).
    id str
    The provider-assigned unique ID for this managed resource.
    zones Sequence[GetZonesZone]
    List of SDN zones.
    type str
    Filter zones by type (simple, vlan, qinq, vxlan, evpn).
    id String
    The provider-assigned unique ID for this managed resource.
    zones List<Property Map>
    List of SDN zones.
    type String
    Filter zones by type (simple, vlan, qinq, vxlan, evpn).

    Supporting Types

    GetZonesZone

    AdvertiseSubnets bool
    Bridge string
    Controller string
    DisableArpNdSuppression bool
    Dns string
    DnsZone string
    ExitNodes List<string>
    ExitNodesLocalRouting bool
    Id string
    Ipam string
    Mtu int
    Nodes List<string>
    Peers List<string>
    PrimaryExitNode string
    ReverseDns string
    RtImport string
    ServiceVlan int
    ServiceVlanProtocol string
    Type string
    VrfVxlan int
    AdvertiseSubnets bool
    Bridge string
    Controller string
    DisableArpNdSuppression bool
    Dns string
    DnsZone string
    ExitNodes []string
    ExitNodesLocalRouting bool
    Id string
    Ipam string
    Mtu int
    Nodes []string
    Peers []string
    PrimaryExitNode string
    ReverseDns string
    RtImport string
    ServiceVlan int
    ServiceVlanProtocol string
    Type string
    VrfVxlan int
    advertiseSubnets Boolean
    bridge String
    controller String
    disableArpNdSuppression Boolean
    dns String
    dnsZone String
    exitNodes List<String>
    exitNodesLocalRouting Boolean
    id String
    ipam String
    mtu Integer
    nodes List<String>
    peers List<String>
    primaryExitNode String
    reverseDns String
    rtImport String
    serviceVlan Integer
    serviceVlanProtocol String
    type String
    vrfVxlan Integer
    advertiseSubnets boolean
    bridge string
    controller string
    disableArpNdSuppression boolean
    dns string
    dnsZone string
    exitNodes string[]
    exitNodesLocalRouting boolean
    id string
    ipam string
    mtu number
    nodes string[]
    peers string[]
    primaryExitNode string
    reverseDns string
    rtImport string
    serviceVlan number
    serviceVlanProtocol string
    type string
    vrfVxlan number
    advertiseSubnets Boolean
    bridge String
    controller String
    disableArpNdSuppression Boolean
    dns String
    dnsZone String
    exitNodes List<String>
    exitNodesLocalRouting Boolean
    id String
    ipam String
    mtu Number
    nodes List<String>
    peers List<String>
    primaryExitNode String
    reverseDns String
    rtImport String
    serviceVlan Number
    serviceVlanProtocol String
    type String
    vrfVxlan Number

    Package Details

    Repository
    proxmoxve muhlba91/pulumi-proxmoxve
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the proxmox Terraform Provider.
    proxmoxve logo
    Proxmox Virtual Environment (Proxmox VE) v7.4.0 published on Sunday, Aug 17, 2025 by Daniel Muehlbachler-Pietrzykowski