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

proxmoxve.SDNZone.getQinq

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 a QinQ Zone in Proxmox SDN. QinQ also known as VLAN stacking, that uses multiple layers of VLAN tags for isolation. The QinQ zone defines the outer VLAN tag (the Service VLAN) whereas the inner VLAN tag is defined by the VNet. Your physical network switches must support stacked VLANs for this configuration. Due to the double stacking of tags, you need 4 more bytes for QinQ VLANs. For example, you must reduce the MTU to 1496 if you physical interface MTU is 1500.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as proxmoxve from "@muhlba91/pulumi-proxmoxve";
    
    const example = proxmoxve.SDNZone.getQinq({
        id: "qinq1",
    });
    export const dataProxmoxVirtualEnvironmentSdnZoneQinq = {
        id: example.then(example => example.id),
        nodes: example.then(example => example.nodes),
        bridge: example.then(example => example.bridge),
        service_vlan: example.then(example => example.serviceVlan),
        service_vlan_protocol: example.then(example => example.serviceVlanProtocol),
        mtu: example.then(example => example.mtu),
        dns: example.then(example => example.dns),
        dns_zone: example.then(example => example.dnsZone),
        ipam: example.then(example => example.ipam),
        reverse_dns: example.then(example => example.reverseDns),
    };
    
    import pulumi
    import pulumi_proxmoxve as proxmoxve
    
    example = proxmoxve.SDNZone.get_qinq(id="qinq1")
    pulumi.export("dataProxmoxVirtualEnvironmentSdnZoneQinq", {
        "id": example.id,
        "nodes": example.nodes,
        "bridge": example.bridge,
        "service_vlan": example.service_vlan,
        "service_vlan_protocol": example.service_vlan_protocol,
        "mtu": example.mtu,
        "dns": example.dns,
        "dns_zone": example.dns_zone,
        "ipam": example.ipam,
        "reverse_dns": example.reverse_dns,
    })
    
    package main
    
    import (
    	"github.com/muhlba91/pulumi-proxmoxve/sdk/v7/go/proxmoxve/sdnzone"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		example, err := sdnzone.GetQinq(ctx, &sdnzone.GetQinqArgs{
    			Id: "qinq1",
    		}, nil)
    		if err != nil {
    			return err
    		}
    		ctx.Export("dataProxmoxVirtualEnvironmentSdnZoneQinq", pulumi.Map{
    			"id":                    example.Id,
    			"nodes":                 example.Nodes,
    			"bridge":                example.Bridge,
    			"service_vlan":          example.ServiceVlan,
    			"service_vlan_protocol": example.ServiceVlanProtocol,
    			"mtu":                   example.Mtu,
    			"dns":                   example.Dns,
    			"dns_zone":              example.DnsZone,
    			"ipam":                  example.Ipam,
    			"reverse_dns":           example.ReverseDns,
    		})
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using ProxmoxVE = Pulumi.ProxmoxVE;
    
    return await Deployment.RunAsync(() => 
    {
        var example = ProxmoxVE.SDNZone.GetQinq.Invoke(new()
        {
            Id = "qinq1",
        });
    
        return new Dictionary<string, object?>
        {
            ["dataProxmoxVirtualEnvironmentSdnZoneQinq"] = 
            {
                { "id", example.Apply(getQinqResult => getQinqResult.Id) },
                { "nodes", example.Apply(getQinqResult => getQinqResult.Nodes) },
                { "bridge", example.Apply(getQinqResult => getQinqResult.Bridge) },
                { "service_vlan", example.Apply(getQinqResult => getQinqResult.ServiceVlan) },
                { "service_vlan_protocol", example.Apply(getQinqResult => getQinqResult.ServiceVlanProtocol) },
                { "mtu", example.Apply(getQinqResult => getQinqResult.Mtu) },
                { "dns", example.Apply(getQinqResult => getQinqResult.Dns) },
                { "dns_zone", example.Apply(getQinqResult => getQinqResult.DnsZone) },
                { "ipam", example.Apply(getQinqResult => getQinqResult.Ipam) },
                { "reverse_dns", example.Apply(getQinqResult => getQinqResult.ReverseDns) },
            },
        };
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.proxmoxve.SDNZone.SDNZoneFunctions;
    import com.pulumi.proxmoxve.SDNZone.inputs.GetQinqArgs;
    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 example = SDNZoneFunctions.getQinq(GetQinqArgs.builder()
                .id("qinq1")
                .build());
    
            ctx.export("dataProxmoxVirtualEnvironmentSdnZoneQinq", Map.ofEntries(
                Map.entry("id", example.id()),
                Map.entry("nodes", example.nodes()),
                Map.entry("bridge", example.bridge()),
                Map.entry("service_vlan", example.serviceVlan()),
                Map.entry("service_vlan_protocol", example.serviceVlanProtocol()),
                Map.entry("mtu", example.mtu()),
                Map.entry("dns", example.dns()),
                Map.entry("dns_zone", example.dnsZone()),
                Map.entry("ipam", example.ipam()),
                Map.entry("reverse_dns", example.reverseDns())
            ));
        }
    }
    
    variables:
      example:
        fn::invoke:
          function: proxmoxve:SDNZone:getQinq
          arguments:
            id: qinq1
    outputs:
      dataProxmoxVirtualEnvironmentSdnZoneQinq:
        id: ${example.id}
        nodes: ${example.nodes}
        bridge: ${example.bridge}
        service_vlan: ${example.serviceVlan}
        service_vlan_protocol: ${example.serviceVlanProtocol}
        mtu: ${example.mtu}
        dns: ${example.dns}
        dns_zone: ${example.dnsZone}
        ipam: ${example.ipam}
        reverse_dns: ${example.reverseDns}
    

    Using getQinq

    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 getQinq(args: GetQinqArgs, opts?: InvokeOptions): Promise<GetQinqResult>
    function getQinqOutput(args: GetQinqOutputArgs, opts?: InvokeOptions): Output<GetQinqResult>
    def get_qinq(id: Optional[str] = None,
                 opts: Optional[InvokeOptions] = None) -> GetQinqResult
    def get_qinq_output(id: Optional[pulumi.Input[str]] = None,
                 opts: Optional[InvokeOptions] = None) -> Output[GetQinqResult]
    func LookupQinq(ctx *Context, args *LookupQinqArgs, opts ...InvokeOption) (*LookupQinqResult, error)
    func LookupQinqOutput(ctx *Context, args *LookupQinqOutputArgs, opts ...InvokeOption) LookupQinqResultOutput

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

    public static class GetQinq 
    {
        public static Task<GetQinqResult> InvokeAsync(GetQinqArgs args, InvokeOptions? opts = null)
        public static Output<GetQinqResult> Invoke(GetQinqInvokeArgs args, InvokeOptions? opts = null)
    }
    public static CompletableFuture<GetQinqResult> getQinq(GetQinqArgs args, InvokeOptions options)
    public static Output<GetQinqResult> getQinq(GetQinqArgs args, InvokeOptions options)
    
    fn::invoke:
      function: proxmoxve:SDNZone/getQinq:getQinq
      arguments:
        # arguments dictionary

    The following arguments are supported:

    Id string
    The unique identifier of the SDN zone.
    Id string
    The unique identifier of the SDN zone.
    id String
    The unique identifier of the SDN zone.
    id string
    The unique identifier of the SDN zone.
    id str
    The unique identifier of the SDN zone.
    id String
    The unique identifier of the SDN zone.

    getQinq Result

    The following output properties are available:

    Bridge string
    A local, VLAN-aware bridge that is already configured on each local node
    Dns string
    DNS API server address.
    DnsZone string
    DNS domain name. Used to register hostnames, such as <hostname>.<domain>. The DNS zone must already exist on the DNS server.
    Id string
    The unique identifier of the SDN zone.
    Ipam string
    IP Address Management system.
    Mtu int
    MTU value for the zone.
    Nodes List<string>
    The Proxmox nodes which the zone and associated VNets are deployed on
    ReverseDns string
    Reverse DNS API server address.
    ServiceVlan int
    Service VLAN tag for QinQ. The tag must be between 1 and 4094.
    ServiceVlanProtocol string
    Service VLAN protocol for QinQ. The protocol must be 802.1ad or 802.1q.
    Bridge string
    A local, VLAN-aware bridge that is already configured on each local node
    Dns string
    DNS API server address.
    DnsZone string
    DNS domain name. Used to register hostnames, such as <hostname>.<domain>. The DNS zone must already exist on the DNS server.
    Id string
    The unique identifier of the SDN zone.
    Ipam string
    IP Address Management system.
    Mtu int
    MTU value for the zone.
    Nodes []string
    The Proxmox nodes which the zone and associated VNets are deployed on
    ReverseDns string
    Reverse DNS API server address.
    ServiceVlan int
    Service VLAN tag for QinQ. The tag must be between 1 and 4094.
    ServiceVlanProtocol string
    Service VLAN protocol for QinQ. The protocol must be 802.1ad or 802.1q.
    bridge String
    A local, VLAN-aware bridge that is already configured on each local node
    dns String
    DNS API server address.
    dnsZone String
    DNS domain name. Used to register hostnames, such as <hostname>.<domain>. The DNS zone must already exist on the DNS server.
    id String
    The unique identifier of the SDN zone.
    ipam String
    IP Address Management system.
    mtu Integer
    MTU value for the zone.
    nodes List<String>
    The Proxmox nodes which the zone and associated VNets are deployed on
    reverseDns String
    Reverse DNS API server address.
    serviceVlan Integer
    Service VLAN tag for QinQ. The tag must be between 1 and 4094.
    serviceVlanProtocol String
    Service VLAN protocol for QinQ. The protocol must be 802.1ad or 802.1q.
    bridge string
    A local, VLAN-aware bridge that is already configured on each local node
    dns string
    DNS API server address.
    dnsZone string
    DNS domain name. Used to register hostnames, such as <hostname>.<domain>. The DNS zone must already exist on the DNS server.
    id string
    The unique identifier of the SDN zone.
    ipam string
    IP Address Management system.
    mtu number
    MTU value for the zone.
    nodes string[]
    The Proxmox nodes which the zone and associated VNets are deployed on
    reverseDns string
    Reverse DNS API server address.
    serviceVlan number
    Service VLAN tag for QinQ. The tag must be between 1 and 4094.
    serviceVlanProtocol string
    Service VLAN protocol for QinQ. The protocol must be 802.1ad or 802.1q.
    bridge str
    A local, VLAN-aware bridge that is already configured on each local node
    dns str
    DNS API server address.
    dns_zone str
    DNS domain name. Used to register hostnames, such as <hostname>.<domain>. The DNS zone must already exist on the DNS server.
    id str
    The unique identifier of the SDN zone.
    ipam str
    IP Address Management system.
    mtu int
    MTU value for the zone.
    nodes Sequence[str]
    The Proxmox nodes which the zone and associated VNets are deployed on
    reverse_dns str
    Reverse DNS API server address.
    service_vlan int
    Service VLAN tag for QinQ. The tag must be between 1 and 4094.
    service_vlan_protocol str
    Service VLAN protocol for QinQ. The protocol must be 802.1ad or 802.1q.
    bridge String
    A local, VLAN-aware bridge that is already configured on each local node
    dns String
    DNS API server address.
    dnsZone String
    DNS domain name. Used to register hostnames, such as <hostname>.<domain>. The DNS zone must already exist on the DNS server.
    id String
    The unique identifier of the SDN zone.
    ipam String
    IP Address Management system.
    mtu Number
    MTU value for the zone.
    nodes List<String>
    The Proxmox nodes which the zone and associated VNets are deployed on
    reverseDns String
    Reverse DNS API server address.
    serviceVlan Number
    Service VLAN tag for QinQ. The tag must be between 1 and 4094.
    serviceVlanProtocol String
    Service VLAN protocol for QinQ. The protocol must be 802.1ad or 802.1q.

    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