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
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