Files
PSProxmoxVE/src/PSProxmoxVE.Core/Models/Network/PveSdnIpam.cs
T
Clint Branham a72642d203 feat: add firewall, backup, and SDN IPAM/DNS/controller cmdlets
Add 35 new cmdlets bringing the total to 118:
- Firewall (21): rules, groups, aliases, IP sets, options at
  cluster/node/VM/container levels
- Backup (5): ad-hoc vzdump and scheduled backup job CRUD
- SDN IPAM/DNS/Controller (9): plugin management for SDN subsystem

Also includes:
- Fix: Remove-PveRole now has ConfirmImpact.High
- Fix: URL-encode snapshot names in API paths
- Refactor: extract auth header strings to constants in PveHttpClient
- Add PSGallery version badge to README
- Full test coverage: 11 JSON fixtures, xUnit model tests, Pester
  unit tests, and integration tests for firewall/backup/OVA import
- Updated manifest, format file, CHANGELOG, README, API coverage docs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 07:51:49 -05:00

53 lines
1.4 KiB
C#

using System.Text.Json.Serialization;
using Newtonsoft.Json;
namespace PSProxmoxVE.Core.Models.Network;
/// <summary>
/// Represents a Software-Defined Networking (SDN) IPAM plugin as returned by
/// the /cluster/sdn/ipams endpoint. Requires Proxmox VE 8.0+.
/// </summary>
public class PveSdnIpam
{
/// <summary>
/// The IPAM plugin identifier.
/// </summary>
[JsonPropertyName("ipam")]
[JsonProperty("ipam")]
public string Ipam { get; set; } = string.Empty;
/// <summary>
/// The IPAM type (e.g. "pve", "netbox", "phpipam").
/// </summary>
[JsonPropertyName("type")]
[JsonProperty("type")]
public string Type { get; set; } = string.Empty;
/// <summary>
/// The URL of the external IPAM service (for netbox/phpipam types).
/// </summary>
[JsonPropertyName("url")]
[JsonProperty("url")]
public string? Url { get; set; }
/// <summary>
/// The API token for the external IPAM service.
/// </summary>
[JsonPropertyName("token")]
[JsonProperty("token")]
public string? Token { get; set; }
/// <summary>
/// The configuration section identifier.
/// </summary>
[JsonPropertyName("section")]
[JsonProperty("section")]
public int? Section { get; set; }
/// <inheritdoc />
public override string ToString()
{
return $"SDN IPAM: {Ipam} | Type: {Type}";
}
}