NAME

Net::Proxmox::VE::Pools - Presents a pool object

VERSION

version 0.44

SYNOPSIS

@pools = $obj->pools();
$pool  = $obj->get_pool( $poolid );

$ok = $obj->create_pool(%args);
$ok = $obj->create_pool(\%args);

$ok = $obj->delete_pool( $poolid );

$ok = $obj->update_pool( $poolid, %args);
$ok = $obj->update_pool( $poolid, \%args);

DESCRIPTION

This module implements the 'pools' section of the Proxmox API for Net::Proxmox::VE, you should use the API via that module. This documentation is for detailed reference.

To be clear, this module isn't useful as a stand alone piece of software.

Pools can be used to group a set of virtual machines and datastores. You can then simply set permissions on pools, which are inherited by all pool members. This is a great way to simplify access control.

NOTE

String formats that are mentioned herein are done so for convenience and are defined in detail in the Proxmox API documents on the Proxmox project website.

This module doesn't enforce them, it will send whatever garbage you provide straight to the server API. So garbage-in, garbage-out!

METHODS

pools

Gets a list of pools or get a single pool configuration..

Accepts optional query parameters (hashref or key/value list) to filter results.

Examples:

# list all pools
@pools = $obj->pools();

# retrieve a single pool via query parameter (preferred; replaces deprecated get_pool())
@one = $obj->pools({ poolid => 'mypool' });

# filter by pool id and type
@filtered = $obj->pools( poolid => 'mypool', type => 'qemu' );

Available types (at time of writing) are: qemu, lxc, storage

get_pool DEPRECATED IN API: The Proxmox API marks the per-pool endpoint as deprecated (no support for nested pools).

This module retains `get_pool()` for backward compatibility and will continue to provide it until the Proxmox API removes the endpoint. New code should use `pools()` with the `poolid` query parameter (preferred),

Retrieves a single storage pool

$pool = $obj->get_pool( $poolid );

Where $poolid is a string in pve-poolid format

create_pool

Creates a new pool

$ok = $obj->create_pool( %args );
$ok = $obj->create_pool( \%args );

%args may items contain from the following list

poolid

String. The id of the pool you wish to access, in pve-poolid format. This is required.

comment

String. This is a comment associated with the new pool, this is optional

delete_pool DEPRECATED IN API: The Proxmox API marks the per-pool delete endpoint as deprecated (no support for nested pools).

This module keeps `update_pool()` for backward compatibility and will remove the subroutine when the API no longer exposes the per-pool endpoint.

Deletes a single pool

$ok = $obj->delete_pool( $poolid )

Where $poolid is a string in pve-poolid format

update_pool DEPRECATED IN API: The Proxmox API marks the per-pool update endpoint as deprecated (no support for nested pools).

This module keeps `update_pool()` for backward compatibility and will remove the subroutine when the API no longer exposes the per-pool endpoint.

Updates (sets) a pool's data

$ok = $obj->update_pool( $poolid, %args );
$ok = $obj->update_pool( $poolid, \%args );

Where $poolid is a string in pve-poolid format

%args may items contain from the following list

comment

String. This is a comment associated with the new pool, this is optional

delete

Boolean. Removes the vms/storage rather than adding it.

storage

String. List of storage ids (in pve-storage-id-list format)

vms

String. List of virtual machines in pve-vmid-list format.

SEE ALSO

Net::Proxmox::VE

AUTHOR

Dean Hamstead <dean@fragfest.com.au>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2026 by Dean Hamstead.

This is free software, licensed under:

The MIT (X11) License