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

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.
Proxmox VE. Sdn. Outputs. Get Zones Zone> - 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
[]Get
Zones Zone - 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<Get
Zones Zone> - 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
Get
Zones Zone[] - 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[Get
Zones Zone] - 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
- Advertise
Subnets bool - Bridge string
- Controller string
- Disable
Arp boolNd Suppression - Dns string
- Dns
Zone string - Exit
Nodes List<string> - Exit
Nodes boolLocal Routing - Id string
- Ipam string
- Mtu int
- Nodes List<string>
- Peers List<string>
- Primary
Exit stringNode - Reverse
Dns string - Rt
Import string - Service
Vlan int - Service
Vlan stringProtocol - Type string
- Vrf
Vxlan int
- Advertise
Subnets bool - Bridge string
- Controller string
- Disable
Arp boolNd Suppression - Dns string
- Dns
Zone string - Exit
Nodes []string - Exit
Nodes boolLocal Routing - Id string
- Ipam string
- Mtu int
- Nodes []string
- Peers []string
- Primary
Exit stringNode - Reverse
Dns string - Rt
Import string - Service
Vlan int - Service
Vlan stringProtocol - Type string
- Vrf
Vxlan int
- advertise
Subnets Boolean - bridge String
- controller String
- disable
Arp BooleanNd Suppression - dns String
- dns
Zone String - exit
Nodes List<String> - exit
Nodes BooleanLocal Routing - id String
- ipam String
- mtu Integer
- nodes List<String>
- peers List<String>
- primary
Exit StringNode - reverse
Dns String - rt
Import String - service
Vlan Integer - service
Vlan StringProtocol - type String
- vrf
Vxlan Integer
- advertise
Subnets boolean - bridge string
- controller string
- disable
Arp booleanNd Suppression - dns string
- dns
Zone string - exit
Nodes string[] - exit
Nodes booleanLocal Routing - id string
- ipam string
- mtu number
- nodes string[]
- peers string[]
- primary
Exit stringNode - reverse
Dns string - rt
Import string - service
Vlan number - service
Vlan stringProtocol - type string
- vrf
Vxlan number
- advertise_
subnets bool - bridge str
- controller str
- disable_
arp_ boolnd_ suppression - dns str
- dns_
zone str - exit_
nodes Sequence[str] - exit_
nodes_ boollocal_ routing - id str
- ipam str
- mtu int
- nodes Sequence[str]
- peers Sequence[str]
- primary_
exit_ strnode - reverse_
dns str - rt_
import str - service_
vlan int - service_
vlan_ strprotocol - type str
- vrf_
vxlan int
- advertise
Subnets Boolean - bridge String
- controller String
- disable
Arp BooleanNd Suppression - dns String
- dns
Zone String - exit
Nodes List<String> - exit
Nodes BooleanLocal Routing - id String
- ipam String
- mtu Number
- nodes List<String>
- peers List<String>
- primary
Exit StringNode - reverse
Dns String - rt
Import String - service
Vlan Number - service
Vlan StringProtocol - type String
- vrf
Vxlan Number
Package Details
- Repository
- proxmoxve muhlba91/pulumi-proxmoxve
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
proxmox
Terraform Provider.

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