mirror of
https://github.com/GoodOlClint/PSProxmoxVE.git
synced 2026-08-28 16:06:59 +00:00
feat: close API coverage gaps — 51 new cmdlets across 6 areas
Phase 1 — Missing Update/Set operations (10 cmdlets): - SDN: Set-PveSdnZone/Vnet/Subnet/Controller/Ipam/Dns + Invoke-PveSdnApply - Set-PveRole, Set-PveStorage, Set-PveApiToken Phase 2 — Cluster operations (8 cmdlets): - Get-PveClusterResource (cluster-wide inventory) - Get-PveTaskList, Stop-PveTask - Get/New/Set/Remove-PvePool - Get-PveBackupInfo (unprotected VMs) Phase 3 — VM & container gaps (14 cmdlets): - Move-PveVmDisk, Remove-PveVmDisk - Guest agent: Get-PveVmGuestOsInfo/FsInfo, Read/Write-PveVmGuestFile, Set-PveVmGuestPassword, Invoke-PveVmGuestFsTrim - Suspend/Resume-PveContainer, Resize-PveContainerDisk, New-PveContainerTemplate, Move-PveContainerVolume, Get-PveContainerInterface Phase 4 — Storage content management (4 cmdlets): - Get-PveStorageStatus, Remove/Set-PveStorageContent, New-PveStorageDisk Phase 5 — Node operations (6 cmdlets): - Get/Set-PveNodeConfig, Get/Set-PveNodeDns, Start/Stop-PveNodeVms Phase 6 — Access management (9 cmdlets): - Get/New/Set/Remove-PveGroup, Get/New/Set/Remove-PveDomain, Set-PvePassword Total: 169 cmdlets (was 118). Includes models, services, format views, Pester unit tests, manifest updates, README, CHANGELOG, API coverage docs. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace PSProxmoxVE.Core.Models.Users;
|
||||
|
||||
/// <summary>
|
||||
/// Represents a Proxmox VE group as returned by the /access/groups endpoint.
|
||||
/// </summary>
|
||||
public class PveGroup
|
||||
{
|
||||
/// <summary>The unique group identifier.</summary>
|
||||
[JsonPropertyName("groupid")]
|
||||
[JsonProperty("groupid")]
|
||||
public string GroupId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>Optional comment/description for the group.</summary>
|
||||
[JsonPropertyName("comment")]
|
||||
[JsonProperty("comment")]
|
||||
public string? Comment { get; set; }
|
||||
|
||||
/// <summary>Comma-separated list of user IDs that belong to this group.</summary>
|
||||
[JsonPropertyName("users")]
|
||||
[JsonProperty("users")]
|
||||
public string? Users { get; set; }
|
||||
|
||||
/// <summary>Array of member user IDs. Populated when available.</summary>
|
||||
[JsonPropertyName("members")]
|
||||
[JsonProperty("members")]
|
||||
public string[]? Members { get; set; }
|
||||
|
||||
/// <inheritdoc />
|
||||
public override string ToString()
|
||||
{
|
||||
return $"Group: {GroupId} | Comment: {Comment ?? "N/A"} | Users: {Users ?? "none"}";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user