using System; using System.Management.Automation; using PSProxmox.Client; using PSProxmox.Session; namespace PSProxmox.Cmdlets { /// /// Removes an SDN VNet from Proxmox VE. /// The Remove-ProxmoxSDNVnet cmdlet removes an SDN VNet from Proxmox VE. /// /// Remove an SDN VNet /// Remove-ProxmoxSDNVnet -Connection $connection -VNet "vnet1" /// /// /// Remove an SDN VNet using pipeline input /// Get-ProxmoxSDNVnet -Connection $connection -VNet "vnet1" | Remove-ProxmoxSDNVnet -Connection $connection /// /// [Cmdlet(VerbsCommon.Remove, "ProxmoxSDNVnet", SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.High)] public class RemoveProxmoxSDNVnetCmdlet : PSCmdlet { /// /// The connection to the Proxmox VE server. /// [Parameter(Mandatory = true, Position = 0)] public ProxmoxConnection Connection { get; set; } /// /// The name of the VNet to remove. /// [Parameter(Mandatory = true, ValueFromPipelineByPropertyName = true)] public string VNet { get; set; } /// /// Processes the cmdlet. /// protected override void ProcessRecord() { try { var client = new ProxmoxApiClient(Connection, this); // Confirm removal if (!ShouldProcess($"SDN VNet {VNet}", "Remove")) { return; } // Remove the VNet WriteVerbose($"Removing SDN VNet {VNet}"); client.Delete($"sdn/vnets/{VNet}"); WriteVerbose($"SDN VNet {VNet} removed"); } catch (Exception ex) { WriteError(new ErrorRecord(ex, "RemoveProxmoxSDNVnetError", ErrorCategory.OperationStopped, VNet)); } } } }