Viewing docs for Proxmox Virtual Environment (Proxmox VE) v8.1.0
published on Sunday, Apr 26, 2026 by Daniel Muehlbachler-Pietrzykowski
published on Sunday, Apr 26, 2026 by Daniel Muehlbachler-Pietrzykowski
Viewing docs for Proxmox Virtual Environment (Proxmox VE) v8.1.0
published on Sunday, Apr 26, 2026 by Daniel Muehlbachler-Pietrzykowski
published on Sunday, Apr 26, 2026 by Daniel Muehlbachler-Pietrzykowski
Retrieves the list of PCI devices present on a specific Proxmox VE node. This is useful for discovering PCI devices available for passthrough or for configuring hardware mappings.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as proxmoxve from "@muhlba91/pulumi-proxmoxve";
// List all PCI devices on a node (using default blacklist)
const example = proxmoxve.hardware.getPci({
nodeName: "pve",
});
// List all PCI devices including bridges and memory controllers
const all = proxmoxve.hardware.getPci({
nodeName: "pve",
pciClassBlacklists: [],
});
// Find all NVIDIA GPUs (vendor ID 10de = NVIDIA, class 03 = display controller)
const gpus = proxmoxve.hardware.getPci({
nodeName: "pve",
pciClassBlacklists: [],
filters: {
vendorId: "10de",
"class": "03",
},
});
import pulumi
import pulumi_proxmoxve as proxmoxve
# List all PCI devices on a node (using default blacklist)
example = proxmoxve.hardware.get_pci(node_name="pve")
# List all PCI devices including bridges and memory controllers
all = proxmoxve.hardware.get_pci(node_name="pve",
pci_class_blacklists=[])
# Find all NVIDIA GPUs (vendor ID 10de = NVIDIA, class 03 = display controller)
gpus = proxmoxve.hardware.get_pci(node_name="pve",
pci_class_blacklists=[],
filters={
"vendor_id": "10de",
"class_": "03",
})
package main
import (
"github.com/muhlba91/pulumi-proxmoxve/sdk/v8/go/proxmoxve/hardware"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// List all PCI devices on a node (using default blacklist)
_, err := hardware.GetPci(ctx, &hardware.GetPciArgs{
NodeName: "pve",
}, nil)
if err != nil {
return err
}
// List all PCI devices including bridges and memory controllers
_, err = hardware.GetPci(ctx, &hardware.GetPciArgs{
NodeName: "pve",
PciClassBlacklists: []interface{}{},
}, nil)
if err != nil {
return err
}
// Find all NVIDIA GPUs (vendor ID 10de = NVIDIA, class 03 = display controller)
_, err = hardware.GetPci(ctx, &hardware.GetPciArgs{
NodeName: "pve",
PciClassBlacklists: []interface{}{},
Filters: hardware.GetPciFilters{
VendorId: pulumi.StringRef("10de"),
Class: pulumi.StringRef("03"),
},
}, nil)
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using ProxmoxVE = Pulumi.ProxmoxVE;
return await Deployment.RunAsync(() =>
{
// List all PCI devices on a node (using default blacklist)
var example = ProxmoxVE.Hardware.GetPci.Invoke(new()
{
NodeName = "pve",
});
// List all PCI devices including bridges and memory controllers
var all = ProxmoxVE.Hardware.GetPci.Invoke(new()
{
NodeName = "pve",
PciClassBlacklists = new() { },
});
// Find all NVIDIA GPUs (vendor ID 10de = NVIDIA, class 03 = display controller)
var gpus = ProxmoxVE.Hardware.GetPci.Invoke(new()
{
NodeName = "pve",
PciClassBlacklists = new() { },
Filters = new ProxmoxVE.Hardware.Inputs.GetPciFiltersInputArgs
{
VendorId = "10de",
Class = "03",
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.proxmoxve.hardware.HardwareFunctions;
import com.pulumi.proxmoxve.hardware.inputs.GetPciArgs;
import com.pulumi.proxmoxve.hardware.inputs.GetPciFiltersArgs;
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) {
// List all PCI devices on a node (using default blacklist)
final var example = HardwareFunctions.getPci(GetPciArgs.builder()
.nodeName("pve")
.build());
// List all PCI devices including bridges and memory controllers
final var all = HardwareFunctions.getPci(GetPciArgs.builder()
.nodeName("pve")
.pciClassBlacklists()
.build());
// Find all NVIDIA GPUs (vendor ID 10de = NVIDIA, class 03 = display controller)
final var gpus = HardwareFunctions.getPci(GetPciArgs.builder()
.nodeName("pve")
.pciClassBlacklists()
.filters(GetPciFiltersArgs.builder()
.vendorId("10de")
.class_("03")
.build())
.build());
}
}
variables:
# List all PCI devices on a node (using default blacklist)
example:
fn::invoke:
function: proxmoxve:hardware:getPci
arguments:
nodeName: pve
# List all PCI devices including bridges and memory controllers
all:
fn::invoke:
function: proxmoxve:hardware:getPci
arguments:
nodeName: pve
pciClassBlacklists: []
# Find all NVIDIA GPUs (vendor ID 10de = NVIDIA, class 03 = display controller)
gpus:
fn::invoke:
function: proxmoxve:hardware:getPci
arguments:
nodeName: pve
pciClassBlacklists: []
filters:
vendorId: 10de
class: '03'
Using getPci
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 getPci(args: GetPciArgs, opts?: InvokeOptions): Promise<GetPciResult>
function getPciOutput(args: GetPciOutputArgs, opts?: InvokeOptions): Output<GetPciResult>def get_pci(filters: Optional[GetPciFilters] = None,
node_name: Optional[str] = None,
pci_class_blacklists: Optional[Sequence[str]] = None,
opts: Optional[InvokeOptions] = None) -> GetPciResult
def get_pci_output(filters: pulumi.Input[Optional[GetPciFiltersArgs]] = None,
node_name: pulumi.Input[Optional[str]] = None,
pci_class_blacklists: pulumi.Input[Optional[Sequence[pulumi.Input[str]]]] = None,
opts: Optional[InvokeOptions] = None) -> Output[GetPciResult]func GetPci(ctx *Context, args *GetPciArgs, opts ...InvokeOption) (*GetPciResult, error)
func GetPciOutput(ctx *Context, args *GetPciOutputArgs, opts ...InvokeOption) GetPciResultOutput> Note: This function is named GetPci in the Go SDK.
public static class GetPci
{
public static Task<GetPciResult> InvokeAsync(GetPciArgs args, InvokeOptions? opts = null)
public static Output<GetPciResult> Invoke(GetPciInvokeArgs args, InvokeOptions? opts = null)
}public static CompletableFuture<GetPciResult> getPci(GetPciArgs args, InvokeOptions options)
public static Output<GetPciResult> getPci(GetPciArgs args, InvokeOptions options)
fn::invoke:
function: proxmoxve:hardware/getPci:getPci
arguments:
# arguments dictionaryThe following arguments are supported:
- Node
Name string - The name of the node to list PCI devices from.
- Filters
Pulumi.
Proxmox VE. Hardware. Inputs. Get Pci Filters - Client-side filters for narrowing down results. All filters use prefix matching.
- Pci
Class List<string>Blacklists - A list of PCI class IDs (hex prefixes) to exclude from the results. If not set, the Proxmox default blacklist is used which filters out memory controllers (05), bridges (06), and processors (0b). Set to an empty list to return all devices.
- Node
Name string - The name of the node to list PCI devices from.
- Filters
Get
Pci Filters - Client-side filters for narrowing down results. All filters use prefix matching.
- Pci
Class []stringBlacklists - A list of PCI class IDs (hex prefixes) to exclude from the results. If not set, the Proxmox default blacklist is used which filters out memory controllers (05), bridges (06), and processors (0b). Set to an empty list to return all devices.
- node
Name String - The name of the node to list PCI devices from.
- filters
Get
Pci Filters - Client-side filters for narrowing down results. All filters use prefix matching.
- pci
Class List<String>Blacklists - A list of PCI class IDs (hex prefixes) to exclude from the results. If not set, the Proxmox default blacklist is used which filters out memory controllers (05), bridges (06), and processors (0b). Set to an empty list to return all devices.
- node
Name string - The name of the node to list PCI devices from.
- filters
Get
Pci Filters - Client-side filters for narrowing down results. All filters use prefix matching.
- pci
Class string[]Blacklists - A list of PCI class IDs (hex prefixes) to exclude from the results. If not set, the Proxmox default blacklist is used which filters out memory controllers (05), bridges (06), and processors (0b). Set to an empty list to return all devices.
- node_
name str - The name of the node to list PCI devices from.
- filters
Get
Pci Filters - Client-side filters for narrowing down results. All filters use prefix matching.
- pci_
class_ Sequence[str]blacklists - A list of PCI class IDs (hex prefixes) to exclude from the results. If not set, the Proxmox default blacklist is used which filters out memory controllers (05), bridges (06), and processors (0b). Set to an empty list to return all devices.
- node
Name String - The name of the node to list PCI devices from.
- filters Property Map
- Client-side filters for narrowing down results. All filters use prefix matching.
- pci
Class List<String>Blacklists - A list of PCI class IDs (hex prefixes) to exclude from the results. If not set, the Proxmox default blacklist is used which filters out memory controllers (05), bridges (06), and processors (0b). Set to an empty list to return all devices.
getPci Result
The following output properties are available:
- Devices
List<Pulumi.
Proxmox VE. Hardware. Outputs. Get Pci Device> - The list of PCI devices.
- Id string
- The provider-assigned unique ID for this managed resource.
- Node
Name string - The name of the node to list PCI devices from.
- Filters
Pulumi.
Proxmox VE. Hardware. Outputs. Get Pci Filters - Client-side filters for narrowing down results. All filters use prefix matching.
- Pci
Class List<string>Blacklists - A list of PCI class IDs (hex prefixes) to exclude from the results. If not set, the Proxmox default blacklist is used which filters out memory controllers (05), bridges (06), and processors (0b). Set to an empty list to return all devices.
- Devices
[]Get
Pci Device - The list of PCI devices.
- Id string
- The provider-assigned unique ID for this managed resource.
- Node
Name string - The name of the node to list PCI devices from.
- Filters
Get
Pci Filters - Client-side filters for narrowing down results. All filters use prefix matching.
- Pci
Class []stringBlacklists - A list of PCI class IDs (hex prefixes) to exclude from the results. If not set, the Proxmox default blacklist is used which filters out memory controllers (05), bridges (06), and processors (0b). Set to an empty list to return all devices.
- devices
List<Get
Pci Device> - The list of PCI devices.
- id String
- The provider-assigned unique ID for this managed resource.
- node
Name String - The name of the node to list PCI devices from.
- filters
Get
Pci Filters - Client-side filters for narrowing down results. All filters use prefix matching.
- pci
Class List<String>Blacklists - A list of PCI class IDs (hex prefixes) to exclude from the results. If not set, the Proxmox default blacklist is used which filters out memory controllers (05), bridges (06), and processors (0b). Set to an empty list to return all devices.
- devices
Get
Pci Device[] - The list of PCI devices.
- id string
- The provider-assigned unique ID for this managed resource.
- node
Name string - The name of the node to list PCI devices from.
- filters
Get
Pci Filters - Client-side filters for narrowing down results. All filters use prefix matching.
- pci
Class string[]Blacklists - A list of PCI class IDs (hex prefixes) to exclude from the results. If not set, the Proxmox default blacklist is used which filters out memory controllers (05), bridges (06), and processors (0b). Set to an empty list to return all devices.
- devices
Sequence[Get
Pci Device] - The list of PCI devices.
- id str
- The provider-assigned unique ID for this managed resource.
- node_
name str - The name of the node to list PCI devices from.
- filters
Get
Pci Filters - Client-side filters for narrowing down results. All filters use prefix matching.
- pci_
class_ Sequence[str]blacklists - A list of PCI class IDs (hex prefixes) to exclude from the results. If not set, the Proxmox default blacklist is used which filters out memory controllers (05), bridges (06), and processors (0b). Set to an empty list to return all devices.
- devices List<Property Map>
- The list of PCI devices.
- id String
- The provider-assigned unique ID for this managed resource.
- node
Name String - The name of the node to list PCI devices from.
- filters Property Map
- Client-side filters for narrowing down results. All filters use prefix matching.
- pci
Class List<String>Blacklists - A list of PCI class IDs (hex prefixes) to exclude from the results. If not set, the Proxmox default blacklist is used which filters out memory controllers (05), bridges (06), and processors (0b). Set to an empty list to return all devices.
Supporting Types
GetPciDevice
- Class string
- The PCI class code (hex, e.g.
0x030000). - Device string
- The PCI device ID (hex, e.g.
0x5916). - Device
Name string - The human-readable device name.
- Id string
- The PCI address in
domain:bus:device.functionformat (e.g.0000:00:02.0). - Iommu
Group int - The IOMMU group number.
-1indicates that the device is not in an IOMMU group. - Mdev bool
- Whether the device supports mediated devices (vGPU).
- Subsystem
Device string - The PCI subsystem device ID (hex).
- Subsystem
Device stringName - The human-readable subsystem device name.
- Subsystem
Vendor string - The PCI subsystem vendor ID (hex).
- Subsystem
Vendor stringName - The human-readable subsystem vendor name.
- Vendor string
- The PCI vendor ID (hex, e.g.
0x8086). - Vendor
Name string - The human-readable vendor name (e.g.
Intel Corporation).
- Class string
- The PCI class code (hex, e.g.
0x030000). - Device string
- The PCI device ID (hex, e.g.
0x5916). - Device
Name string - The human-readable device name.
- Id string
- The PCI address in
domain:bus:device.functionformat (e.g.0000:00:02.0). - Iommu
Group int - The IOMMU group number.
-1indicates that the device is not in an IOMMU group. - Mdev bool
- Whether the device supports mediated devices (vGPU).
- Subsystem
Device string - The PCI subsystem device ID (hex).
- Subsystem
Device stringName - The human-readable subsystem device name.
- Subsystem
Vendor string - The PCI subsystem vendor ID (hex).
- Subsystem
Vendor stringName - The human-readable subsystem vendor name.
- Vendor string
- The PCI vendor ID (hex, e.g.
0x8086). - Vendor
Name string - The human-readable vendor name (e.g.
Intel Corporation).
- class_ String
- The PCI class code (hex, e.g.
0x030000). - device String
- The PCI device ID (hex, e.g.
0x5916). - device
Name String - The human-readable device name.
- id String
- The PCI address in
domain:bus:device.functionformat (e.g.0000:00:02.0). - iommu
Group Integer - The IOMMU group number.
-1indicates that the device is not in an IOMMU group. - mdev Boolean
- Whether the device supports mediated devices (vGPU).
- subsystem
Device String - The PCI subsystem device ID (hex).
- subsystem
Device StringName - The human-readable subsystem device name.
- subsystem
Vendor String - The PCI subsystem vendor ID (hex).
- subsystem
Vendor StringName - The human-readable subsystem vendor name.
- vendor String
- The PCI vendor ID (hex, e.g.
0x8086). - vendor
Name String - The human-readable vendor name (e.g.
Intel Corporation).
- class string
- The PCI class code (hex, e.g.
0x030000). - device string
- The PCI device ID (hex, e.g.
0x5916). - device
Name string - The human-readable device name.
- id string
- The PCI address in
domain:bus:device.functionformat (e.g.0000:00:02.0). - iommu
Group number - The IOMMU group number.
-1indicates that the device is not in an IOMMU group. - mdev boolean
- Whether the device supports mediated devices (vGPU).
- subsystem
Device string - The PCI subsystem device ID (hex).
- subsystem
Device stringName - The human-readable subsystem device name.
- subsystem
Vendor string - The PCI subsystem vendor ID (hex).
- subsystem
Vendor stringName - The human-readable subsystem vendor name.
- vendor string
- The PCI vendor ID (hex, e.g.
0x8086). - vendor
Name string - The human-readable vendor name (e.g.
Intel Corporation).
- class_ str
- The PCI class code (hex, e.g.
0x030000). - device str
- The PCI device ID (hex, e.g.
0x5916). - device_
name str - The human-readable device name.
- id str
- The PCI address in
domain:bus:device.functionformat (e.g.0000:00:02.0). - iommu_
group int - The IOMMU group number.
-1indicates that the device is not in an IOMMU group. - mdev bool
- Whether the device supports mediated devices (vGPU).
- subsystem_
device str - The PCI subsystem device ID (hex).
- subsystem_
device_ strname - The human-readable subsystem device name.
- subsystem_
vendor str - The PCI subsystem vendor ID (hex).
- subsystem_
vendor_ strname - The human-readable subsystem vendor name.
- vendor str
- The PCI vendor ID (hex, e.g.
0x8086). - vendor_
name str - The human-readable vendor name (e.g.
Intel Corporation).
- class String
- The PCI class code (hex, e.g.
0x030000). - device String
- The PCI device ID (hex, e.g.
0x5916). - device
Name String - The human-readable device name.
- id String
- The PCI address in
domain:bus:device.functionformat (e.g.0000:00:02.0). - iommu
Group Number - The IOMMU group number.
-1indicates that the device is not in an IOMMU group. - mdev Boolean
- Whether the device supports mediated devices (vGPU).
- subsystem
Device String - The PCI subsystem device ID (hex).
- subsystem
Device StringName - The human-readable subsystem device name.
- subsystem
Vendor String - The PCI subsystem vendor ID (hex).
- subsystem
Vendor StringName - The human-readable subsystem vendor name.
- vendor String
- The PCI vendor ID (hex, e.g.
0x8086). - vendor
Name String - The human-readable vendor name (e.g.
Intel Corporation).
GetPciFilters
- Class string
- Filter by PCI class code prefix (e.g.
03to match all display controllers). The0xprefix in class codes is stripped before matching. - Device
Id string - Filter by device ID prefix. The
0xprefix in device IDs is stripped before matching. - Id string
- Filter by PCI address prefix (e.g.
0000:01to match all devices on bus 01). - Vendor
Id string - Filter by vendor ID prefix (e.g.
8086for Intel devices). The0xprefix in vendor IDs is stripped before matching.
- Class string
- Filter by PCI class code prefix (e.g.
03to match all display controllers). The0xprefix in class codes is stripped before matching. - Device
Id string - Filter by device ID prefix. The
0xprefix in device IDs is stripped before matching. - Id string
- Filter by PCI address prefix (e.g.
0000:01to match all devices on bus 01). - Vendor
Id string - Filter by vendor ID prefix (e.g.
8086for Intel devices). The0xprefix in vendor IDs is stripped before matching.
- class_ String
- Filter by PCI class code prefix (e.g.
03to match all display controllers). The0xprefix in class codes is stripped before matching. - device
Id String - Filter by device ID prefix. The
0xprefix in device IDs is stripped before matching. - id String
- Filter by PCI address prefix (e.g.
0000:01to match all devices on bus 01). - vendor
Id String - Filter by vendor ID prefix (e.g.
8086for Intel devices). The0xprefix in vendor IDs is stripped before matching.
- class string
- Filter by PCI class code prefix (e.g.
03to match all display controllers). The0xprefix in class codes is stripped before matching. - device
Id string - Filter by device ID prefix. The
0xprefix in device IDs is stripped before matching. - id string
- Filter by PCI address prefix (e.g.
0000:01to match all devices on bus 01). - vendor
Id string - Filter by vendor ID prefix (e.g.
8086for Intel devices). The0xprefix in vendor IDs is stripped before matching.
- class_ str
- Filter by PCI class code prefix (e.g.
03to match all display controllers). The0xprefix in class codes is stripped before matching. - device_
id str - Filter by device ID prefix. The
0xprefix in device IDs is stripped before matching. - id str
- Filter by PCI address prefix (e.g.
0000:01to match all devices on bus 01). - vendor_
id str - Filter by vendor ID prefix (e.g.
8086for Intel devices). The0xprefix in vendor IDs is stripped before matching.
- class String
- Filter by PCI class code prefix (e.g.
03to match all display controllers). The0xprefix in class codes is stripped before matching. - device
Id String - Filter by device ID prefix. The
0xprefix in device IDs is stripped before matching. - id String
- Filter by PCI address prefix (e.g.
0000:01to match all devices on bus 01). - vendor
Id String - Filter by vendor ID prefix (e.g.
8086for Intel devices). The0xprefix in vendor IDs is stripped before matching.
Package Details
- Repository
- proxmoxve muhlba91/pulumi-proxmoxve
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
proxmoxTerraform Provider.
Viewing docs for Proxmox Virtual Environment (Proxmox VE) v8.1.0
published on Sunday, Apr 26, 2026 by Daniel Muehlbachler-Pietrzykowski
published on Sunday, Apr 26, 2026 by Daniel Muehlbachler-Pietrzykowski
