using System.Collections.Generic;
using Newtonsoft.Json;
using PSProxmoxVE.Core.Utilities;
namespace PSProxmoxVE.Core.Models.Cluster;
///
/// Represents a Proxmox VE resource pool as returned by the /pools endpoint.
///
public class PvePool
{
///
/// The pool identifier.
///
[JsonProperty("poolid")]
public string? PoolId { get; set; }
///
/// An optional comment or description for the pool.
///
[JsonProperty("comment")]
public string? Comment { get; set; }
///
/// The pool members (VMs, containers, storage). Returned as a list of dictionaries
/// when querying a specific pool.
///
[JsonProperty("members")]
[JsonConverter(typeof(NativeListConverter))]
public List>? Members { get; set; }
///
public override string ToString()
{
var memberCount = Members?.Count ?? 0;
return $"Pool: {PoolId ?? "N/A"} | Comment: {Comment ?? "-"} | Members: {memberCount}";
}
}